美文网首页
python游戏|Pie游戏

python游戏|Pie游戏

作者: 木头沉下去了 | 来源:发表于2020-03-30 16:52 被阅读0次

Pie游戏就是在pygame窗口上绘制出一个完整的圆。
把一个圆分成四块,分别按下1/2/3/4,按下一个数字点亮一块,四块都点亮后圆盘变色。

批注 2020-03-30 164815.png image.png image.png
image.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()
   

相关文章

网友评论

      本文标题:python游戏|Pie游戏

      本文链接:https://www.haomeiwen.com/subject/pubvuhtx.html