ฉันพยายามพัฒนาเกมง่ายๆที่สร้างด้วย Pygame (Python library)
ฉันมีsprite
วัตถุที่เป็นplayer
และฉันย้ายมันโดยใช้ปุ่มลูกศร ถ้าฉันไม่เลื่อนเม้าส์สไปรต์ก็จะเคลื่อนที่ตามปกติ แต่เมื่อฉันเลื่อนเมาส์สไปรต์จะเคลื่อนที่เร็วขึ้น (เช่น x2 หรือ x3) player
วัตถุอยู่ภายในcharsGroup
var
ฉันใช้งานเกมใน W7 และใน Ubuntu สิ่งเดียวกันเกิดขึ้นในทั้งสองระบบปฏิบัติการ
ฉันมีเอนทิตีมากกว่าที่เคลื่อนไหวเหมือน NPC และกระสุน แต่พวกมันไม่ได้รับผลกระทบเพียงแค่ผู้เล่น ด้วยสิ่งนี้ฉันคิดว่าปัญหาอาจมีการเชื่อมต่อโดยตรงกับระบบการเคลื่อนที่ของผู้เล่น (ปุ่มลูกศร)
นี่คือupdate()
วิธีการของplayer
วัตถุ:
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
และนี่คือ while loop:
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()
ฉันไม่รู้ว่าคุณสามารถช่วยฉันได้มากกว่านี้ แต่ทุกอย่างที่คุณต้องการ (ข้อมูลเพิ่มเติมหรือรหัส) เพียงแค่ขอให้มัน!
BULLET_IMAGE = pygame.image.load("bullet.png")
และหลังจากนั้นในวันที่self.bulletsGroup.add(Bullet(BULLET_IMAGE...