Saya mencoba mengembangkan game sederhana yang dibuat dengan Pygame (Python library).
Saya memiliki sprite
objek yang mana player
dan 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 player
objek adalah dalam charsGroup
var.
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 player
objek:
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...