J'essaie de développer un jeu simple fait avec Pygame (bibliothèque Python).
J'ai un sprite
objet qui est le player
et je le déplace à l'aide des touches fléchées. Si je ne déplace pas la souris, l'image-objet se déplace normalement, mais lorsque je déplace la souris, l'image-objet se déplace plus rapidement (comme x2 ou x3). L' player
objet est à l'intérieur de la charsGroup
var.
J'ai exécuté le jeu dans W7 et dans Ubuntu. La même chose se produit dans les deux systèmes d'exploitation.
J'ai plus d'entités qui se déplacent comme des PNJ et des balles mais elles ne sont pas affectées, juste le joueur. Compte tenu de cela, je pense que le problème a peut-être une connexion directe avec le système de déplacement du joueur (touches fléchées).
Voici la update()
méthode de l' player
objet:
def update(self):
for event in pygame.event.get():
key = pygame.key.get_pressed()
mouseX, mouseY = pygame.mouse.get_pos()
if event.type == pygame.MOUSEBUTTONDOWN:
self.bulletsGroup.add(Bullet(pygame.image.load("bullet.png"),
self.rect.x + (self.image.get_width()/2),
self.rect.y + (self.image.get_height()/2),
mouseX, mouseY, 50, 50))
if key[pygame.K_RIGHT]:
if not self.checkCollision():
self.rect.x += 10
else:
self.rect.x -= 10
if key[pygame.K_LEFT]:
if not self.checkCollision():
self.rect.x -= 10
else:
self.rect.x += 10
if key[pygame.K_UP]:
if not self.checkCollision():
self.rect.y -= 10
else:
self.rect.y += 10
if key[pygame.K_DOWN]:
if not self.checkCollision():
self.rect.y += 10
else:
self.rect.y -= 10
Et voici la boucle while:
while True:
if PLAYER.healthBase <= 0:
GAMEOVER = True
if not GAMEOVER:
mapTilesGroup.draw(SCREEN)
charsGroup.update()
charsGroup.draw(SCREEN)
npcsGroup.update()
npcsGroup.draw(SCREEN)
drawBullets()
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if GAMEOVER:
myfont = pygame.font.SysFont("monospace", 30)
label = myfont.render("GAME OVER!", 1, (255, 255, 0))
SCREEN.blit(label, (400, 300))
freq.tick(0)
pygame.display.flip()
Je ne sais pas de quoi vous avez besoin pour m'aider, mais tout ce dont vous avez besoin (plus d'informations ou de code), demandez-le!
BULLET_IMAGE = pygame.image.load("bullet.png")
puis plus tardself.bulletsGroup.add(Bullet(BULLET_IMAGE...