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 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)