學習程式設計,如果只是簡單的敲程式碼,雖然也能看到程式執行的一些效果,但也會覺得枯燥乏味。

我們前面介紹了海龜繪圖,這樣學起來也是很有趣的,透過簡單的程式碼,可以在螢幕上繪製想要的圖形。

這裡開始介紹使用Python庫Pygame來編寫遊戲和動畫,用程式碼來編寫屬於自己的遊戲,想想就是特別有成就感,學習程式設計也會變得非常有趣。

Pygame是一個開源的Python模組,可以用於2D遊戲製作,包含對影象、聲音、影片、事件、碰撞等的支援。Pygame建立在SDL的基礎上,SDL是一套跨平臺的多媒體開發庫,用C語言實現,被廣泛的應用於遊戲、模擬器、播放器等的開發。

Pygame讓遊戲開發者不再被底層語言束縛,可以更多的關注遊戲的功能和邏輯。

安裝Pygame

Windows使用pip命令進行安裝

pip3

install

pygame

安裝成功

>>>

import

pygame

pygame

1。9

4

Hello

from

the

pygame

community。

https

//

www

pygame

org

/

contribute

html

匯入Pygame模組

import

pygame

我們在使用Pygame設計一款遊戲或動畫的時候,需要包括三個部分:

一、初始設定

首先需要匯入模組,建立遊戲螢幕,然後初始化一些重要的變數

二、遊戲迴圈

遊戲迴圈使用while迴圈,使遊戲持續更新螢幕和處理事件,除非使用者退出程式,否則就會一直執行

三、退出程式

當用戶想要停止程式的時候,使用一種方式來結束程式

Pygame視窗座標系統

我們在學習turtle繪圖的時候,認識了一個笛卡爾座標系,原點(0,0)位於螢幕的中心並且越向螢幕上方,y座標的值就越大。

這裡我們有一個新的座標系統,Pygame視窗的左上角是原點(0,0),越往右x的值越來越大,x為正值,負值在螢幕的左邊;同樣越往下,y座標的值也越來越大,y座標的負值在視窗的上方,也是位於螢幕的外面。

Python遊戲和動畫——Pygame模組

繪製一個圓

import

pygame

# 初始設定

pygame

init

()

# 初始化pygame

screen

=

pygame

display

set_mode

((

800

600

))

# Pygame視窗

pygame

display

set_caption

“Pygame繪製圖形”

# 標題

keep_going

=

True

RED

=

255

0

0

# 紅色,使用RGB顏色

radius

=

20

# 半徑

# 遊戲迴圈

while

keep_going

for

event

in

pygame

event

get

():

# 遍歷事件

if

event

type

==

pygame

QUIT

# 退出事件

keep_going

=

False

pygame

draw

circle

screen

RED

,(

200

300

),

radius

pygame

display

update

()

# 重新整理螢幕

# 退出程式

pygame

quit

()

第一步:初始設定

import

pygame

# 初始設定

pygame

init

()

# 初始化pygame

screen

=

pygame

display

set_mode

((

800

600

))

# Pygame視窗

pygame

display

set_caption

“Pygame繪製圖形”

# 標題

keep_going

=

True

# 迴圈變數標值

RED

=

255

0

0

# 紅色,使用RGB顏色

radius

=

20

# 半徑

這裡我們首先匯入了pygame模組,然後在使用pygame。init()對其進行初始化。pygame。display。set_mode((800,600))建立了一個800*600畫素的顯示視窗,儲存到變數screen中,以後的程式中就可以直接呼叫變數screen即可。

pygame。display。set_caption(“Pygame繪製圖形”)給螢幕視窗新增一個標題。

在Pygame中建立的遊戲視窗,或者載入到視窗的圖形都稱為Surface。Surface screen即顯示視窗,是繪製其他所有圖形的主要視窗。

我們定義了一個布林型別的標誌,來控制程式的持續執行,想要暫停,只需要改變keep_going的值為False。

定義了一個顏色常量RED,用於設定RGB三色值(255,0,0),第一個值代表紅色R,第二個值代表綠色G,第三個值代表藍色B,每一個值的範圍都是從0~255。

Python遊戲和動畫——Pygame模組

還在程式開始設定了圓的半徑,變數radius = 20

第二步:遊戲迴圈

# 遊戲迴圈

while

keep_going

for

event

in

pygame

event

get

():

# 遍歷事件

if

event

type

==

pygame

QUIT

# 退出事件

keep_going

=

False

pygame

draw

circle

screen

RED

,(

200

300

),

radius

pygame

display

update

()

# 重新整理螢幕

while keep_going:如果keep_going為True遊戲一直持續進行,持續執行Pygame視窗,直到使用者選擇退出。

for event in pygame。event。get():這裡使用for迴圈遍歷Pygame中的所有事件,if event。type == pygame。QUIT:如果使用者按下關閉按鈕,退出程式,這樣變數keep_going變為False,遊戲結束。

遊戲持續進行的時候,即使用者沒有觸發關閉視窗的事件。我們開始在Pygame視窗繪製其他Surface影象,pygame。draw。circle(screen,RED,(200,300),radius)在螢幕視窗(200,300)位置上繪製半徑為20的,填充顏色為RED的圓。

第一個引數screen,指定要在那個Surface上繪製圖形。pygame。draw除了可以繪製圓(circle),還可以繪製矩形、線段等形狀。

最後:遊戲結束

# 退出程式

pygame

quit

()

當用戶退出遊戲的時候,呼叫這段程式碼,清楚所有的設定,關閉螢幕視窗。

Python遊戲和動畫——Pygame模組

載入圖片

import

pygame

# 初始化設定

pygame

init

()

screen

=

pygame

display

set_mode

((

800

600

))

pygame

display

set_caption

“載入圖片”

keep_going

=

True

pic

=

pygame

image

load

“logo_lofi。png”

# 圖片載入

# 遊戲迴圈

while

keep_going

for

event

in

pygame

event

get

():

# 迴圈遍歷事件

if

event

type

==

pygame

QUIT

keep_going

=

False

screen

blit

pic

,(

100

100

))

# 在Surface上繪製圖片

pygame

display

update

()

# 遊戲退出

pygame

quit

()

Python遊戲和動畫——Pygame模組

這一次並不是繪製一個圓,而是將我們儲存的圖片載入到Surface螢幕上。注意圖片儲存的位置和我們。py檔案在同一個目錄下。

pic = pygame。image。load(“logo_lofi。png”)從一個檔案載入影象,儲存到變數pic中,在以後的程式中透過pic來引用這個圖片。

將圖片繪製到Surface螢幕上並且更新繪製視窗,確保所有內容出現在螢幕上。

screen

blit

pic

,(

100

100

))

# 在Surface上繪製圖片

pygame

display

update

()

blit()方法將我們從檔案中載入的圖片pic繪製到screen螢幕的(100,100)位置上。

這裡簡單介紹如何使用Pygame繪製圖形和載入圖片到Surface螢幕上。建立一個Pygame遊戲或動畫的三個步驟。後面的內容會詳細介紹如何使用此模組來建立一款屬於自己的遊戲。

謝謝大家的關注與支援,有不足的地方歡迎指正。

更多內容可以關注微信公眾號【陪孩子一起學程式設計】