基于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)

基于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)

来源: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
  • asp之家 网络编程 m.aspxhome.com