如何解决pygame窗口显示“无响应”
当我运行pygame程序时,游戏窗口显示无响应,并且我还编写了退出功能,但我不知道为什么它的广告再次显示无响应 我的笔记本电脑是Windows 8和32位
import pygame
#initializing pygame
pygame.init()
# create game screen
screen = pygame.display.set_mode((800,600))
# Title and Icon
pygame.display.set_caption("Space Invader")
icon = pygame.image.load('spaceship.png')
pygame.display.set_icon(icon)
# Player
playerImg = pygame.image.load('player.png')
playerX = 370
playerY = 480
playerX_change = 0
def player(x,y):
screen.blit(playerImg,(x,y))
# Game Loop
running = True
while running:
# RGB - Red,Green,Blue
screen.fill((0,0))
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
# if keystroke is pressed check the weather its right or left
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
playerX_change = -0.1
if event.key == pygame.K_RIGHT:
playerX_change = 0.1
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
playerX_change = 0.1
# 5 = 5 + -0.1 -> 5 = 5 - 0.1
# 5 = 5 + 0.1
playerX += player_change
player(playerX,playerY)
pygame.display.update()
解决方法
这是Indentation的问题。您必须在应用程序循环而不是事件循环中更新显示。
此外,变量的名称是playerX_change
而不是player_change
,并且在释放键时,必须设置playerX_change = 0.0
而不是playerX_change = 0.1
:
running = True
while running:
# RGB - Red,Green,Blue
screen.fill((0,0))
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
# if keystroke is pressed check the weather its right or left
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
playerX_change = -0.1
if event.key == pygame.K_RIGHT:
playerX_change = 0.1
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
playerX_change = 0.0 # <---- 0.0 instead of 0.1
#<--| INDENTATION
# 5 = 5 + -0.1 -> 5 = 5 - 0.1
# 5 = 5 + 0.1
playerX += playerX_change
player(playerX,playerY)
pygame.display.update()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。