基于Python Pygame實(shí)現(xiàn)的畫(huà)餅圖游戲
這個(gè)游戲就是實(shí)現(xiàn)鍵盤(pán)上輸入不同的數(shù)字,將圓分割成不同的幾個(gè)部分,每部分用不同的顏色來(lái)實(shí)現(xiàn)。
導(dǎo)入包
導(dǎo)入隨機(jī)包,pygame,系統(tǒng)包,time時(shí)間包用于時(shí)間暫停。math是用來(lái)確認(rèn)弧度的。
import random import pygame, sys, time import math from pygame.locals import *
配置基本參數(shù)
初始化pygame,設(shè)置窗口大小標(biāo)題,設(shè)置圓心的x和y軸,圓的半徑,線條的寬度,這里設(shè)置的足夠大,就會(huì)填充整個(gè)扇形。設(shè)置圓形的屬性,初始的扇形的個(gè)數(shù)設(shè)置為2
pygame.init()
screen = pygame.display.set_mode((400, 400))
pygame.display.set_caption("分餅干")
# 餅圖設(shè)置
x = 200
y = 200
radius = 100
# 顏色
WHITE = (255, 255, 255)
# 線條寬度
WIDTH = 100
# 設(shè)置橢圓的屬性
ellipse = (x - radius, y - radius, radius * 2, radius * 2)
# 扇形大小
sectorNum = 2
根據(jù)輸入的數(shù)字改變扇形的個(gè)數(shù)
根據(jù)按下數(shù)字的鍵,改變扇形的個(gè)數(shù)
def get_sector_num(key):
"""根據(jù)用戶(hù)輸入的數(shù)字決定扇形的大小"""
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
監(jiān)聽(tīng)事件
循環(huán)扇形的個(gè)數(shù),計(jì)算開(kāi)始結(jié)束的弧形,并設(shè)置隨機(jī)的顏色。
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("分餅干")
# 餅圖設(shè)置
x = 200
y = 200
radius = 100
# 顏色
WHITE = (255, 255, 255)
# 線條寬度
WIDTH = 4
# 設(shè)置橢圓的屬性
ellipse = (x - radius, y - radius, radius * 2, radius * 2)
# 扇形大小
sectorNum = 2
def get_sector_num(key):
"""根據(jù)用戶(hù)輸入的數(shù)字決定扇形的大小"""
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)
到此這篇關(guān)于基于Python Pygame實(shí)現(xiàn)的畫(huà)餅圖游戲的文章就介紹到這了,更多相關(guān)Python Pygame 畫(huà)餅圖游戲內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 簡(jiǎn)單的繪圖工具turtle使用詳解
這篇文章主要介紹了python 簡(jiǎn)單的繪圖工具turtle使用詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06
使用python進(jìn)行二維碼生成和識(shí)別的實(shí)現(xiàn)
在Python中,生成和識(shí)別二維碼可以使用不同的庫(kù)來(lái)實(shí)現(xiàn),最常用的庫(kù)包括 qrcode 和 pyzbar,以下是如何使用這些庫(kù)來(lái)生成和識(shí)別二維碼的示例,感興趣的小伙伴可以參考閱讀下2024-09-09
python實(shí)現(xiàn)文本進(jìn)度條 程序進(jìn)度條 加載進(jìn)度條 單行刷新功能
這篇文章主要介紹了python實(shí)現(xiàn)文本進(jìn)度條 程序進(jìn)度條 加載進(jìn)度條 單行刷新功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
python內(nèi)置函數(shù)anext的具體使用
本文主要介紹了python內(nèi)置函數(shù)anext的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
python-itchat 獲取微信群用戶(hù)信息的實(shí)例
今天小編就為大家分享一篇python-itchat 獲取微信群用戶(hù)信息的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02

