Saya mencoba mengembangkan game sederhana yang dibuat dengan Pygame (Python library).
Saya memiliki spriteobjek yang mana playerdan saya memindahkannya menggunakan tombol panah. Jika saya tidak menggerakkan mouse, sprite bergerak secara normal, tetapi ketika saya menggerakkan mouse, sprite bergerak lebih cepat (seperti x2 atau x3). The playerobjek adalah dalam charsGroupvar.
Saya sudah menjalankan game di W7 dan di Ubuntu. Hal yang sama terjadi di kedua OS.
Saya memiliki lebih banyak entitas yang bergerak seperti NPC dan peluru tetapi mereka tidak terpengaruh, hanya pemainnya. Mengingat ini, saya pikir masalahnya mungkin memiliki koneksi langsung dengan sistem pemain yang bergerak (tombol panah).
Berikut adalah update()metode playerobjek:
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
Dan inilah loop 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()
Saya tidak tahu apa lagi yang bisa Anda butuhkan untuk membantu saya, tetapi apa pun yang Anda butuhkan (info lebih lanjut atau kode) minta saja!
BULLET_IMAGE = pygame.image.load("bullet.png")dan kemudianself.bulletsGroup.add(Bullet(BULLET_IMAGE...