Ich versuche ein einfaches Spiel mit Pygame (Python-Bibliothek) zu entwickeln.
Ich habe ein sprite
Objekt, player
und ich bewege es mit den Pfeiltasten. Wenn ich die Maus nicht bewege, bewegt sich das Sprite normal, aber wenn ich die Maus bewege, bewegt sich das Sprite schneller (wie x2 oder x3). Das player
Objekt befindet sich im charsGroup
var.
Ich habe das Spiel in W7 und in Ubuntu ausgeführt. Das Gleiche passiert in beiden Betriebssystemen.
Ich habe mehr Wesen, die sich wie NPCs und Kugeln bewegen, aber sie werden nicht beeinflusst, nur der Spieler. In Anbetracht dessen denke ich, dass das Problem möglicherweise eine direkte Verbindung mit dem Bewegungssystem des Players (Pfeiltasten) hat.
Hier ist die update()
Methode des player
Objekts:
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
Und hier ist die while-Schleife:
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()
Ich weiß nicht, was Sie noch brauchen können, um mir zu helfen, aber alles, was Sie brauchen (mehr Informationen oder Code), fragen Sie einfach danach!
BULLET_IMAGE = pygame.image.load("bullet.png")
und dann späterself.bulletsGroup.add(Bullet(BULLET_IMAGE...