欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

基于Python Pygame实现的画饼图游戏

程序员文章站 2022-03-10 13:17:12
目录导入包配置基本参数根据输入的数字改变扇形的个数监听事件这个游戏就是实现键盘上输入不同的数字,将圆分割成不同的几个部分,每部分用不同的颜色来实现。导入包导入随机包,pygame,系统包,time时间...

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

导入包

导入随机包,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)

基于Python Pygame实现的画饼图游戏

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 画饼图游戏内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!