PY交易(二)使用Pygame写一个小游戏——Pie

上一期PY交易(一)使用Pygame讲了 一些Pygame的用法,这一期就来使用Pygame写一个小游戏,这个游戏就是Pie。

Pie游戏怎么玩呢。相信我,超级简单,你玩过就不会再玩了。但是可以通过写代码的过程来熟悉Pygame的概念,了解Python概念的基本逻辑,还有用户交互的环节。

不多说了,直接上代码,

import math,sys
import 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:
            sys.exit()
        elif event.type == KEYUP:
            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
    screen.fill((0,0,200))

    textImg1 = myfont.render("1",True,color)
    screen.blit(textImg1, (x + radius / 2 - 20, y - radius / 2))
    textImg2 = myfont.render("2", True, color)
    screen.blit(textImg2, (x - radius / 2, y - radius / 2))
    textImg3 = myfont.render("3", True, color)
    screen.blit(textImg3, (x - radius / 2, y + radius / 2 - 20))
    textImg4 = myfont.render("4", True, color)
    screen.blit(textImg4, (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(18)
        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()

规则很简单,依次按下1,2,3,4就可以了,怎么样,自己动手试试看吧。

以后还会继续写,更深入的

猜你喜欢

转载自blog.csdn.net/c710473510/article/details/88978540