PyGame开发游戏时敌人无法在屏幕正常显示该如何排查
问题修复方案
核心错误点
- 已定义
enemy()敌人绘制函数,但未在主循环的画面更新逻辑前调用,敌人图像不会被渲染到屏幕上。 - 键盘按键判断逻辑写在事件遍历循环外部,仅能响应最后一次捕获的事件,存在按键响应异常的隐患。
修复后可运行代码
import pygame pygame.init() screen = pygame.display.set_mode((800,600)) #Titulo E Icono pygame.display.set_caption("Invaders") icon = pygame.image.load('logo.jpg') pygame.display.set_icon(icon) #Player playerImg = pygame.image.load('spaceship.png') playerX = 370 playerY = 480 playerX_change = 0 enemyImage = pygame.image.load('enemy.png') enemyX = 370 enemyY = 48 enemyX_change = 0 def player(x, y): screen.blit(playerImg, (x, y)) def enemy(x, y): screen.blit(enemyImage, (x, y)) #Loop running = True while running: screen.fill((59, 59, 59)) for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # 按键判断逻辑移到事件循环内部 #Right Or Left Checker if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: playerX_change = -0.5 if event.key == pygame.K_RIGHT: playerX_change = 0.5 if event.type == pygame.KEYUP: if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT: playerX_change = 0 playerX += playerX_change if playerX <=0: playerX=0 elif playerX >=736: playerX = 736 player(playerX, playerY) # 调用敌人绘制函数 enemy(enemyX, enemyY) pygame.display.update()
内容的提问来源于stack exchange,提问作者NotM1guel
相关产品推荐
相关产品推荐

