Mrk傻瓜 2020-11-04 15:42 采纳率: 100%
浏览 50
已采纳

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

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()#更新用户显示窗口

 

  • 写回答

2条回答 默认 最新

  • PythonJavaC++go 2020-11-04 16:27
    关注
    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()  # 更新用户显示窗口

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 Revit2020下载问题
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
  • ¥15 单片机无法进入HAL_TIM_PWM_PulseFinishedCallback回调函数
  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 如何在炒股软件中,爬到我想看的日k线