基於Python Pygame實現的畫餅圖遊戲
這個遊戲就是實現鍵盤上輸入不同的數字,將圓分割成不同的幾個部分,每部分用不同的顏色來實現。
導入包
導入隨機包,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 畫餅圖遊戲內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!