因此,我的代碼中的“bullet(或laser.png)”精靈在運行時不會繪制。我在代碼中破壞了一些東西,試圖解決另一個問題,即精靈留下了痕跡。我嘗試了多種方法,但最終破壞了我的代碼(抱歉,我是 pygame 新手,無論如何,這可能是一個愚蠢的問題)。我之前還定義了所有變量def redrawGameWindow(win, HeroX,HeroY): win.blit(bg, (0,0)) win.blit(HeroSprite, (HeroX, HeroY)) win.blit(EnemySprite, (EnemyX, EnemyY)) pygame.draw.rect(bg, (211,211,211), (430 - 5, 25 - 5, EnemyHealth + 10, 30 + 10)) pygame.draw.rect(bg, (255,0,0), (430, 25, EnemyHealth, 30)) pygame.draw.rect(bg, (211,211,211), (430 - 5, 665 - 5, EnemyHealth + 10, 30 + 10)) pygame.draw.rect(bg, (0,255,0), (430, 665, PlayerHealth, 30)) pygame.display.update()def fire_bullet(x, y): global BulletState BulletState = "fire" win.blit(Laser, (BulletX,BulletY))while GameRun: clock.tick(60) pressed = pygame.key.get_pressed() EnemyX += EnemyVel if EnemyX <= 0 : EnemyVel = 5 elif EnemyX >= winX - 60: EnemyVel = -5 if pressed[pygame.K_LEFT]: HeroX -= vel if HeroX > 0 else 0 elif pressed[pygame.K_RIGHT]: HeroX += vel if HeroX < winX - 57 else 0 if pressed[pygame.K_SPACE]: if BulletState == "ready" : BulletX = HeroX fire_bullet(BulletX, BulletY) for event in pygame.event.get(): if event.type == pygame.QUIT: GameRun = False if BulletY <= 0: BulletY = HeroY BulletState = "ready" if BulletState == "fire": fire_bullet(BulletX, BulletY) BulletY -= BulletVel redrawGameWindow(win, HeroX, HeroY)pygame.quit()
為什么 Pygame 中的精靈現在不繪制,而是提前加載的?
慕碼人8056858
2023-10-26 17:01:59