Pygame déplacement d'un objet
Alors j'essaie simplement de déplacer un objet dans pygame. J'ai été à la recherche des tutoriels, mais tout ce que je peux trouver est de savoir comment la faire ressembler il neige, lol. J'ai essayé de mettre en œuvre cette méthode dans le déplacement d'un objet, mais je vais avoir pas de chance. Tout ce que je veux faire est de déplacer un objet sur l'écran et quand il atteint la fin de l'écran, il se réinitialise et va encore. Donc, je suis en train de déplacer l'objet que j'ai mis dans mon code (les deux polygones, de la ligne et le cercle) à travers l'écran, horizonally ou à la verticale, il ne marche pas vraiment d'importance.
import pygame, sys, time, random
from pygame.locals import *
pygame.init()
windowSurface = pygame.display.set_mode((500, 400), 0, 32)
pygame.display.set_caption("Paint")
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
windowSurface.fill(WHITE)
pygame.draw.polygon(windowSurface,BLUE,((146, 0), (250, 100), (230, 265), (44, 250), (0,110)))
pygame.draw.polygon(windowSurface,RED,((70, 0), (150, 200), (0, 50)))
pygame.draw.line(windowSurface,BLACK,(60, 60), (120, 60), 8)
pygame.draw.circle(windowSurface, GREEN , (150,150), 15, 0)
pygame.display.update()
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
- cela pourrait peut-être aider: stackoverflow.com/questions/8252860/...
Vous devez vous connecter pour publier un commentaire.
Avec votre approche, vous ne pouvez pas. L'idée derrière l'utilisation de pygame est de dessiner tous les objets que vous voulez dessiner chaque image. Vous devez déplacer le dessin à l'intérieur de votre
while True
boucle en premier.Alors, puisque vous êtes à dessiner tout ce que chaque image, vous pouvez:
Donc, à la fin, vous pourriez avoir quelque chose comme ça (c'est votre tâche de changer pour un objet)
Afin de faire ce que vous essayez de faire, vous devrez avoir quelque chose qui change dans le "while True:" en boucle. Voici un exemple de code qui permettra de faire ce que vous essayez de faire:
Je vais faire de mon mieux pour expliquer le présent code ainsi que possible.
Lignes 1-9, vous le savez déjà.
Ligne 10 commence avec quelque chose que vous ne savez probablement pas sur. La Surface des objets sont un type de la forme rectangulaire de l'image qui peut être attaché à n'importe quelle autre surface, ou à être dessiné avec pygame.tirage au sort. Croyez le ou non, la fenêtre est en fait une de surface.
Ligne 10 crée une surface, la ligne 11 le remplit avec du noir, et à la ligne 12 dessine un pentagone sur elle.
Ligne 13 en fait, fondamentalement, tous les pixels qui sont de couleur noir transparent.
Lignes 14-17, vous devriez maintenant comprendre.
Ligne 18 crée un nouvel objet de surface pour la ligne, mais au lieu de dessiner la ligne, il est rempli avec le noir et le laisse seul. C'est parce que, si vous regardez la ligne de votre ancien programme, vous pouvez voir que c'est vraiment juste un rectangle et rien d'autre.
Lignes 20-23 vous devez comprendre.
Ligne 24 fait un dictionnaire de rectangles. Les Rectangles indiquent l'emplacement d'un objet de surface et qui sont nécessaires dans l'ordre de tirer sur quoi que ce soit.
Lignes 25-28 modifier l'emplacement de la ligne et le cercle. La raison que j'ai fait, c'est parce que j'ai pensé que vous aimeriez qu'il en considérant que vous n'avez pas la ligne et le cercle dans le coin supérieur gauche de votre programme.
Lignes 29-33, vous devriez comprendre.
Ligne 34 démarre une boucle qui va parcourir tous les rectangles.
Ligne 35 déplace le droit de chacun des rectangles d'un pixel vers la droite.
Ligne 36 vérifie pour voir si le droit de l'rect a frappé le bord droit de la fenêtre.
Ligne 37 vérifie si celui qui a frappé le côté est de la ligne, et si elle l'est, les lignes 38-39 déplacer à l'emplacement où vous l'aviez.
Ligne de 40 des vérifications pour voir si celui qui a frappé la côte est du cercle, et si elle l'est, les lignes 41-42 déplacer à l'emplacement où vous l'aviez.
Lignes 43-44 mettre le rectangle dans le coin en haut à gauche, là où les deux autres formes commencé.
Ligne 45, vous devriez le savoir.
Lignes 46 à 49 utilisation de la surface.blit() fonction. Le premier argument de cette fonction est une surface, et la seconde est une rect.
Ligne 50 ne permet pas plus de 40 cadres de passer en une seconde.
Ligne 51 mises à jour de l'écran.
J'espère vraiment que cela a aidé, et j'apprécierais si vous avez voté ou accepté ma réponse, compte tenu de combien de temps il m'a fallu pour l'écrire. Si vous avez des questions, veuillez les poser. Merci!!!!
Il n'est pas difficile du tout. Nous allons d'abord être la résolution de votre problème sur déplacement votre objet(s):
Dans les lignes de code, toutes les coordonnées sont convertis en une forme de x,y des variables. Lorsque les touches sont enfoncées, des modifications sont apportées aux variables, modifiant ainsi les coordonnées et les positions de vos formes.
C'est un très bon tutoriel, il inclut même un peu de code très semblable à la vôtre pour commencer, sur les graphiques de base
http://inventwithpython.com/chapter17.html