目录
  • 导入包
  • 配置基本参数
  • 根据输入的数字改变扇形的个数
  • 监听事件

这个游戏就是实现键盘上输入不同的数字,将圆分割成不同的几个部分,每部分用不同的颜色来实现。

导入包

导入随机包,pygame,系统包,time时间包用于时间暂停。math是用来确认弧度的。

import random
import pygame, sys, time
import math
from pygame.locals import *

配置基本参数

初始化pygame,设置窗口大小标题,设置圆心的x和y轴,圆的半径,线条的宽度,这里设置的足够大,就会填充整个扇形。设置圆形的属性,初始的扇形的个数设置为2

pygame.init()

screen = pygame.display.set_mode((400, 400))
pygame.display.set_caption("分饼干")

# 饼图设置
x = 200
y = 200
radius = 100
# 颜色
white = (255, 255, 255)
# 线条宽度
width = 100
# 设置椭圆的属性
ellipse = (x - radius, y - radius, radius * 2, radius * 2)
# 扇形大小
sectornum = 2

根据输入的数字改变扇形的个数

根据按下数字的键,改变扇形的个数

def get_sector_num(key):
    """根据用户输入的数字决定扇形的大小"""
    if key == pygame.k_2:
        return 2
    elif key == pygame.k_3:
        return 3
    elif key == pygame.k_4:
        return 4
    elif key == pygame.k_5:
        return 5
    elif key == pygame.k_6:
        return 6
    elif key == pygame.k_7:
        return 7
    elif key == pygame.k_8:
        return 8
    elif key == pygame.k_9:
        return 9
    return 1

监听事件

循环扇形的个数,计算开始结束的弧形,并设置随机的颜色。

while true:
    for event in pygame.event.get():
        if event.type == quit:
            pygame.quit()
            sys.exit()
        if event.type == keydown:
            if event.key == pygame.k_escape:
                pygame.quit()
                sys.exit()
            else:
                sectornum = get_sector_num(event.key)
    screen.fill(white)
    for i in range(sectornum):
        start_angle = 0 + (360 / sectornum) * i
        end_angle = (360 / sectornum) * (i + 1)
        pygame.draw.arc(screen, (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)), ellipse,
                        math.radians(start_angle),  math.radians(end_angle), 100)
    pygame.display.update()
    time.sleep(1)

import random
import pygame, sys, time
import math
from pygame.locals import *

pygame.init()

screen = pygame.display.set_mode((400, 400))
pygame.display.set_caption("分饼干")

# 饼图设置
x = 200
y = 200
radius = 100
# 颜色
white = (255, 255, 255)
# 线条宽度
width = 4

# 设置椭圆的属性
ellipse = (x - radius, y - radius, radius * 2, radius * 2)
# 扇形大小
sectornum = 2


def get_sector_num(key):
    """根据用户输入的数字决定扇形的大小"""
    if key == pygame.k_2:
        return 2
    elif key == pygame.k_3:
        return 3
    elif key == pygame.k_4:
        return 4
    elif key == pygame.k_5:
        return 5
    elif key == pygame.k_6:
        return 6
    elif key == pygame.k_7:
        return 7
    elif key == pygame.k_8:
        return 8
    elif key == pygame.k_9:
        return 9
    return 1


while true:
    for event in pygame.event.get():
        if event.type == quit:
            pygame.quit()
            sys.exit()
        if event.type == keydown:
            if event.key == pygame.k_escape:
                pygame.quit()
                sys.exit()
            else:
                sectornum = get_sector_num(event.key)
    screen.fill(white)
    for i in range(sectornum):
        start_angle = 0 + (360 / sectornum) * i
        end_angle = (360 / sectornum) * (i + 1)
        pygame.draw.arc(screen, (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)), ellipse,
                        math.radians(start_angle),  math.radians(end_angle), 100)
    pygame.display.update()
    time.sleep(1) 

到此这篇关于基于python pygame实现的画饼图游戏的文章就介绍到这了,更多相关python pygame 画饼图游戏内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!