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()