Python &引用;pygame.error:显示表面退出“;运行代码时
我正在尝试用Pygame制作一个简单的移动游戏,因为我正在学习它。每当我尝试运行代码时,总会遇到一个问题:“pygame.error:display Surface quit” 我试着在末尾加上“break”,但窗口立即关闭!我尝试过搜索解决方案,但找不到一个对我的代码有帮助的解决方案Python &引用;pygame.error:显示表面退出“;运行代码时,python,python-3.x,pygame,pygame-surface,Python,Python 3.x,Pygame,Pygame Surface,我正在尝试用Pygame制作一个简单的移动游戏,因为我正在学习它。每当我尝试运行代码时,总会遇到一个问题:“pygame.error:display Surface quit” 我试着在末尾加上“break”,但窗口立即关闭!我尝试过搜索解决方案,但找不到一个对我的代码有帮助的解决方案 import pygame import random pygame.init() # Window setup size = [400, 400] screen = pygame.display.set_mod
import pygame
import random
pygame.init()
# Window setup
size = [400, 400]
screen = pygame.display.set_mode(size)
clock = pygame.time.Clock()
# player position
x = size[0] // 2
y = size[1] // 2
# ball position
ballX = random.randrange(0, size[0])
ballY = random.randrange(0, size[1])
# colours
red = pygame.color.Color('#FF8080')
blue = pygame.color.Color('#8080FF')
white = pygame.color.Color('#FFFFFF')
black = pygame.color.Color('#000000')
def CheckOffScreenX(x):
if x > size[0]:
x = 0
elif x < 0:
x = size[0]
return x
def CheckOffScreenY(y):
if y > size[1]:
y = 0
elif y < 0:
y = size[1]
return y
# Game loop
done = False
while not done:
screen.fill(black)
keys = pygame.key.get_pressed()
#player movement
if keys[pygame.K_w]:
y -=1
if keys[pygame.K_s]:
y +=1
if keys[pygame.K_a]:
x -=1
if keys[pygame.K_d]:
x +=1
# Check offscreen
x = CheckOffScreenX(x)
y = CheckOffScreenY(y)
# draw player
pygame.draw.circle(screen, red, [x, y], 6)
pygame.display.flip()
# draw ball
pygame.draw.circle(screen, blue, [ballX, ballY], 6)
pygame.display.flip()
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
clock.tick(32)
pygame.quit()
导入pygame
随机输入
pygame.init()
#窗口设置
大小=[400400]
screen=pygame.display.set_模式(大小)
clock=pygame.time.clock()
#球员位置
x=大小[0]//2
y=大小[1]//2
#球位
ballX=random.randrange(0,大小[0])
ballY=random.randrange(0,大小[1])
#颜色
红色=pygame.color.color(“#FF8080”)
blue=pygame.color.color(“#8080FF”)
白色=pygame.color.color(“#FFFFFF”)
black=pygame.color.color(“#000000”)
def CheckOffScreenX(x):
如果x>大小[0]:
x=0
elif x<0:
x=大小[0]
返回x
def CheckOffScreenY(y):
如果y>大小[1]:
y=0
elif y<0:
y=尺寸[1]
返回y
#游戏循环
完成=错误
虽然没有这样做:
屏幕填充(黑色)
keys=pygame.key.get_pressed()
#球员运动
如果键[pygame.K_w]:
y-=1
如果键[pygame.K_s]:
y+=1
如果键[pygame.K_a]:
x-=1
如果键[pygame.K_d]:
x+=1
#屏幕外检查
x=CheckOffScreenX(x)
y=CheckOffScreenY(y)
#平局球员
pygame.draw.circle(屏幕,红色,[x,y],6)
pygame.display.flip()
#抽签
pygame.draw.circle(屏幕,蓝色,[ballX,ballY],6)
pygame.display.flip()
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
完成=正确
时钟滴答(32)
pygame.quit()
任何帮助都将不胜感激 问题是主回路的内部人员pygame.quit()
取消初始化所有pygame模块。取消初始化模块后,所有对pygyme指令的进一步调用(在下一帧中)都将导致崩溃。当应用程序结束时,在主循环之后执行
pygame.quit()
done=False
虽然没有这样做:
屏幕填充(黑色)
# [...]
#退出()啊,非常感谢!!我从一本书中学习Python,我开始认为这本书主要是针对Python 2的@谢谢你。不客气。注意,这在Python2中没有什么不同。