基于Python Pygame实现的画饼图游戏
作者:我的天才女友 时间:2023-10-25 18:30:23
这个游戏就是实现键盘上输入不同的数字,将圆分割成不同的几个部分,每部分用不同的颜色来实现。
导入包
导入随机包,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)
来源:https://blog.csdn.net/qq_40801987/article/details/121768324
标签:Python,Pygame,游戏
0
投稿
猜你喜欢
详解AJAX核心 —— XMLHttpRequest 对象
2010-03-31 14:49:00
使用scrapy实现增量式爬取方式
2022-08-18 04:08:10
Python爬取奶茶店数据分析哪家最好喝以及性价比
2021-02-19 08:41:45
python实现dict版图遍历示例
2023-11-01 11:43:41
JDBC利用C3P0数据库连接池连接数据库
2024-01-13 12:37:51
Python创建增量目录的代码实例
2021-12-07 04:12:55
Python信息抽取之乱码解决办法
2021-10-12 23:32:46
python学习VSCode使用技巧带你进入高效开发模式
2021-01-02 04:38:58
Python开发之基于模板匹配的信用卡数字识别功能
2021-08-09 22:30:27
Centos7中MySQL数据库使用mysqldump进行每日自动备份的编写
2024-01-17 11:52:41
sqlserver、mysql获取连接字符串步骤
2024-01-22 00:49:33
Golang HTTP服务超时控制实现原理分析
2024-05-08 10:52:16
python:解析requests返回的response(json格式)说明
2023-11-05 15:43:25
Python使用稀疏矩阵节省内存实例
2021-03-31 17:58:19
linux CentOS6.5 yum安装mysql5.6
2024-01-28 16:45:25
用PHP实现标准的IP Whois查询
2023-11-14 19:35:01
深入学习python的yield和generator
2022-01-15 05:00:28
MySQL索引操作命令详解
2024-01-29 01:57:55
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
2022-08-08 04:10:31
PHP三层结构(上) 简单三层结构
2023-06-20 06:36:07