Tôi đang cố gắng phát triển một trò chơi đơn giản được tạo bằng Pygame (thư viện Python).
Tôi có một sprite
đối tượng player
và tôi di chuyển nó bằng các phím mũi tên. Nếu tôi không di chuyển chuột, sprite sẽ di chuyển bình thường, nhưng khi tôi di chuyển chuột, sprite sẽ di chuyển nhanh hơn (như x2 hoặc x3). Đối player
tượng là bên trong charsGroup
var.
Tôi đã chạy trò chơi trong W7 và Ubuntu. Điều tương tự xảy ra trong cả hai hệ điều hành.
Tôi có nhiều thực thể di chuyển như NPC và đạn nhưng chúng không bị ảnh hưởng, chỉ là người chơi. Vì điều này, tôi nghĩ rằng vấn đề có thể có kết nối trực tiếp với hệ thống di chuyển của người chơi (phím mũi tên).
Đây là update()
phương thức của player
đối tượng:
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
Và đây là vòng lặp 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()
Tôi không biết bạn cần thêm gì để giúp tôi, nhưng bất cứ điều gì bạn cần (thêm thông tin hoặc mã) chỉ cần yêu cầu!
BULLET_IMAGE = pygame.image.load("bullet.png")
và sau đóself.bulletsGroup.add(Bullet(BULLET_IMAGE...