基於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!

推薦閱讀: