Faire se déplacer un personnage animé en pygame

Fermé
alicemargotsun Messages postés 1 Date d'inscription jeudi 19 avril 2018 Statut Membre Dernière intervention 19 avril 2018 - 19 avril 2018 à 10:29
bert de la speed Messages postés 762 Date d'inscription jeudi 31 juillet 2008 Statut Membre Dernière intervention 12 août 2022 - 20 avril 2018 à 19:32
Bonsoir, je suis en train de coder un jeu pour un projet scolaire sauf que je rencontre un problème. J'ai pu animé mon personnage mais je cherche a le faire se déplacer et je n'ai aucune idée de comment faire.
voici mon code actuelle:

import pygame
from pygame.locals import*

pygame.init()##ouverture de la fenetre
fenetre=pygame.display.set_mode((550,550))


perso_img = pygame.image.load("manils mvttex.png").convert_alpha()

frame = 0
WIDTH = 168
frame_rect = pygame.Rect(frame * WIDTH, 0, 168,255)

clock = pygame.time.Clock()

continuer = True
while continuer:

for event in pygame.event.get():
if event.type == QUIT:
continuer = False

dt = clock.tick(3) # On raltentit la boucle à 3 FPS

frame = (frame + 1) % 2
frame_rect = pygame.Rect(frame * WIDTH, 0, 168, 255)

fenetre.fill((255, 255, 255))
fenetre.blit(perso_img, dest=(168, 255), area=frame_rect)


pygame.display.flip()



pygame.quit()

2 réponses

Bonsoir.

Il existe des tonnes de tutoriel sur pygame, il serait nécessaire d'en suivre un.

Il y aussi la documentation pygame, même si certaines choses ne sont pas facile à comprendre, mais faire déplacer une image est un peu le fonctionnement basique de cette librairie, et si on consulte la documentattion de Rect, on peut lire :

The Rect object has several virtual attributes which can be used to move and align the Rect:

top, left, bottom, right
topleft, bottomleft, topright, bottomright
midtop, midleft, midbottom, midright
center, centerx, centery
size, width, height
w,h


Et pas besoin d'être une pointure en anglais pour comprendre ^^
3
bert de la speed Messages postés 762 Date d'inscription jeudi 31 juillet 2008 Statut Membre Dernière intervention 12 août 2022 110
20 avril 2018 à 19:32
<code python>
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
x_change = (nombre entier) # par exemple -5 te deplacera de moins 5 pixels vers la gauche
elif event.key == pygame.K_RIGHT:
x_change = (entier) // si par exemple 5 te deplacera de 5 pixels vers la droite
<code>
2