大佬们,为什么运行完毕后像图片上一样,按键盘也没反应,下面也没报错

大佬们,为什么运行完毕后像图片上一样,按键盘也没反应,下面也没报错

import math

import 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 math

import 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

回到顶部