Pie游戏就是在pygame窗口上绘制出一个完整的圆。
把一个圆分成四块,分别按下1/2/3/4,按下一个数字点亮一块,四块都点亮后圆盘变色。
![](https://img.haomeiwen.com/i9588110/8cb5a4df83e55d3e.png)
![](https://img.haomeiwen.com/i9588110/dc02488adeaeba0d.png)
![](https://img.haomeiwen.com/i9588110/dd5f07f7360b7c3f.png)
![](https://img.haomeiwen.com/i9588110/5d95c7ace43ccf9f.png)
主要注意的时绘制弧线和绘制线段的方法。用四个布尔变量判断按键,当按下相应的按键时,变量为真。最后判断是否四个都为真,都为真说明整个圆都点亮了。
import math
import sys,pygame
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 = False
piece2 = False
piece3 = False
piece4 = False
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
elif event.type == KEYUP:
if event.key == pygame.K_ESCAPE:
pygame.quit()
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
screen.fill((0,0,200))
textImage1 = myfont.render("1",True,color)
screen.blit(textImage1,(x+radius/2-20,y-radius/2))
textImage2 = myfont.render("2",True,color)
screen.blit(textImage2,(x-radius/2,y-radius/2))
textImage3 = myfont.render("3",True,color)
screen.blit(textImage3,(x-radius/2,y+radius/2-20))
textImage4 = myfont.render("4",True,color)
screen.blit(textImage4,(x+radius/2-20,y+radius/2-20))
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)
if piece1 and piece2 and piece3 and piece4:
color = 0,255,0
pygame.display.update()
网友评论