Pygame
基本模板
基礎模板
import pygame
# 初始化視窗
pygame.init()
screen = pygame.display.set_mode((1280, 720))
pygame.display.set_caption("這裡是標題")
running = True
while running:
#關閉視窗離開遊戲
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
#背景填黑色
screen.fill((0,0,0))
#將遊戲主內容撰寫於此
#重新繪製畫面
pygame.display.update()
pygame.quit()
牛刀小試
import pygame
#初始化視窗
pygame.init()
screen = pygame.display.set_mode((1280, 720))
pygame.display.set_caption("使用方向鍵移動小白球")
#移動距離
dt =1
#初始位置為螢幕中間
pos_x,pos_y =screen.get_width() / 2, screen.get_height() / 2
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
#背景填黑色
screen.fill("black")
#畫一顆白球
pygame.draw.circle(screen, "white", (pos_x,pos_y), 40)
#取得鍵盤訊號,並改變座標位置
keys = pygame.key.get_pressed()
if keys[pygame.K_UP]:
pos_y -= dt
if keys[pygame.K_DOWN]:
pos_y += dt
if keys[pygame.K_LEFT]:
pos_x -= dt
if keys[pygame.K_RIGHT]:
pos_x += dt
#重新繪製畫面
pygame.display.update()
pygame.quit()
畫布
import pygame
screen = pygame.display.set_mode((1280, 720))
#get_size取得畫布大小
bg = pygame.Surface(screen.get_size())
#convert()建立副本,加快畫布在視窗顯示速度
bg = bg.convert()
#後三數字為色碼
bg.fill((0,0,0))
#繪製位置通常為(0,0)
screen.blit(bg, 繪製位置)
#最後要update
pygame.display.update()
繪圖函式
畫矩形
pygame.draw.rect(畫布, 顏色, [x坐標, y坐標, 寬度, 高度], 線寬)
畫圓形
pygame.draw.circle(畫布, 顏色, (x坐標, y坐標), 半徑, 線寬)
畫橢圓
pygame.draw.ellipse(畫布, 顏色, [x坐標, y坐標, x直徑, y直徑], 線寬)
畫線段
pygame.draw.line(畫布, 顏色, (x坐標1, y坐標1), (x坐標2, y坐標2), 線寬)
畫圓弧
pygame.draw.arc(畫布, 顏色, [x坐標, y坐標, x直徑, y直徑], 起始角, 結束角, 線寬)
範例
import pygame
pygame.init()
#設定視窗
width, height = 640, 480
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("畫圖範例")
#繪製幾何圖形(線寬0為實心)
pygame.draw.rect(screen, (0,0,255),[70, 70, 500, 60], 4)
pygame.draw.rect(screen, (0,0,255),[70, 150, 500, 60], 0)
pygame.draw.circle(screen, (0,0,255),(100,300), 50, 4)
pygame.draw.ellipse(screen, (0,0,255),[200,250, 150, 80], 4)
pygame.draw.arc(screen, (0,0,255),[400, 250, 70, 150] ,5 ,1.5 , 4)
pygame.draw.line(screen, (0,0,255),(550,250), (550, 400), 4)
#更新畫面
pygame.display.update()
running = True
while running:
#因為圖形沒有變動或移動,所以沒寫在這個區塊
#關閉程式
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pygame.quit()