大佬们,为什么运行完毕后像图片上一样,按键盘也没反应,下面也没报错
import mathimport pygame,sys
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((600,500))
pygame.display.set_caption("The Pie Game = Press 1,2,3,4")#设置当前窗口的标题栏
myfont = pygame.font.Font(None,60)
color = 200,80,60
width = 4
x = 300
y = 250
radius = 200
position = x-radius,y-radius,radius*2,radius*2
piece1 = True
piece2 = False
piece3 = False
piece4 = False
#clear the screen
screen.fill((200,200,200))#填充背景颜色
while True:
for event in pygame.event.get():
if event.type == QUIT:#按下关闭按钮窗口关闭
sys.exit()
if event.type == KEYUP:#先判断event类型再进行使用(https://segmentfault.com/q/1010000012828917)
if event.key ==pygame.K_ESCAPE:
sys.exit()
elif event.key == pygame.K_1:
piece1 = True
elif event.key == pygame.K_2:
piece2 = True
elif event.key == pygame.K_3:
piece3 = True
elif event.key == pygame.K_4:
piece4 = True
#draw the four screen
textImg1 = myfont.render("1",True,color)
screen.blit(textImg1,(x+radius/2-20,y-radius/2))
textImg1 = myfont.render("2",True,color)
screen.blit(textImg1,(x-radius/2,y-radius/2))
textImg1 = myfont.render("3",True,color)
screen.blit(textImg1,(x-radius/2,y+radius/2-20))
textImg1 = myfont.render("4",True,color)
screen.blit(textImg1,(x+radius/2-20,y+radius/2-20))
#should the pieces be drawn?
if piece1:
start_angle = math.radians(0)
end_angle = math.radians(90)
pygame.draw.arc(screen,color,position,start_angle,end_angle,width)
pygame.draw.line(screen,color,(x,y),(x,y-radius),width)
pygame.draw.line(screen,color,(x,y),(x+radius,y),width)
if piece2:
start_angle = math.radians(90)
end_angle = math.radians(180)
pygame.draw.arc(screen,color,position,start_angle,end_angle,width)
pygame.draw.line(screen,color,(x,y),(x,y-radius),width)
pygame.draw.line(screen,color,(x,y),(x-radius,y),width)
if piece3:
start_angle = math.radians(180)
end_angle = math.radians(270)
pygame.draw.arc(screen,color,position,start_angle,end_angle,width)
pygame.draw.line(screen,color,(x,y),(x-radius,y),width)
pygame.draw.line(screen,color,(x,y),(x,y+radius),width)
if piece4:
start_angle = math.radians(270)
end_angle = math.radians(360)
pygame.draw.arc(screen,color,position,start_angle,end_angle,width)
pygame.draw.line(screen,color,(x,y),(x,y+radius),width)
pygame.draw.line(screen,color,(x,y),(x+radius,y),width)
#is the pie finished?
if piece1 and piece2 and piece3 and piece4:
color = 0,255,0
pygame.display.update()#更新用户显示窗口
回答
import mathimport pygame, sys
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((600, 500))
pygame.display.set_caption("The Pie Game = Press 1,2,3,4") # 设置当前窗口的标题栏
myfont = pygame.font.Font(None, 60)
color = 200, 80, 60
width = 4
x = 300
y = 250
radius = 200
position = x - radius, y - radius, radius * 2, radius * 2
piece1 = True
piece2 = False
piece3 = False
piece4 = False
# clear the screen
screen.fill((200, 200, 200)) # 填充背景颜色
while True:
for event in pygame.event.get():
if event.type == QUIT: # 按下关闭按钮窗口关闭
sys.exit()
if event.type == KEYUP: # 先判断event类型再进行使用(https://segmentfault.com/q/1010000012828917)
if event.key == pygame.K_ESCAPE:
sys.exit()
elif event.key == pygame.K_1:
piece1 = True
elif event.key == pygame.K_2:
piece2 = True
elif event.key == pygame.K_3:
piece3 = True
elif event.key == pygame.K_4:
piece4 = True
# draw the four screen
textImg1 = myfont.render("1", True, color)
screen.blit(textImg1, (x + radius / 2 - 20, y - radius / 2))
textImg1 = myfont.render("2", True, color)
screen.blit(textImg1, (x - radius / 2, y - radius / 2))
textImg1 = myfont.render("3", True, color)
screen.blit(textImg1, (x - radius / 2, y + radius / 2 - 20))
textImg1 = myfont.render("4", True, color)
screen.blit(textImg1, (x + radius / 2 - 20, y + radius / 2 - 20))
# should the pieces be drawn?
if piece1:
start_angle = math.radians(0)
end_angle = math.radians(90)
pygame.draw.arc(screen, color, position, start_angle, end_angle, width)
pygame.draw.line(screen, color, (x, y), (x, y - radius), width)
pygame.draw.line(screen, color, (x, y), (x + radius, y), width)
if piece2:
start_angle = math.radians(90)
end_angle = math.radians(180)
pygame.draw.arc(screen, color, position, start_angle, end_angle, width)
pygame.draw.line(screen, color, (x, y), (x, y - radius), width)
pygame.draw.line(screen, color, (x, y), (x - radius, y), width)
if piece3:
start_angle = math.radians(180)
end_angle = math.radians(270)
pygame.draw.arc(screen, color, position, start_angle, end_angle, width)
pygame.draw.line(screen, color, (x, y), (x - radius, y), width)
pygame.draw.line(screen, color, (x, y), (x, y + radius), width)
if piece4:
start_angle = math.radians(270)
end_angle = math.radians(360)
pygame.draw.arc(screen, color, position, start_angle, end_angle, width)
pygame.draw.line(screen, color, (x, y), (x, y + radius), width)
pygame.draw.line(screen, color, (x, y), (x + radius, y), width)
# is the pie finished?
if piece1 and piece2 and piece3 and piece4:
color = 0, 255, 0
pygame.display.update() # 更新用户显示窗口
以上是 大佬们,为什么运行完毕后像图片上一样,按键盘也没反应,下面也没报错 的全部内容, 来源链接: utcz.com/a/64858.html