Próbuję opracować prostą grę stworzoną za pomocą Pygame (biblioteka Python).
Mam sprite
obiekt, który jest player
i poruszam go za pomocą klawiszy strzałek. Jeśli nie poruszę myszą, duszek porusza się normalnie, ale kiedy poruszam myszą, duszek porusza się szybciej (jak x2 lub x3). player
Obiekt znajduje się wewnątrz charsGroup
var.
Uruchomiłem grę w W7 i Ubuntu. To samo dzieje się w obu systemach operacyjnych.
Mam więcej bytów, które poruszają się jak NPC i pociski, ale nie mają na nie wpływu, tylko gracz. Biorąc to pod uwagę, myślę, że problem może mieć bezpośredni związek z systemem poruszania się gracza (klawisze strzałek).
Oto update()
metoda player
obiektu:
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
A oto pętla 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()
Nie wiem, co więcej możesz mi pomóc, ale o wszystko, czego potrzebujesz (więcej informacji lub kod), poproś o to!
BULLET_IMAGE = pygame.image.load("bullet.png")
a późniejself.bulletsGroup.add(Bullet(BULLET_IMAGE...