開始我們的專案 飛機大戰
專案原始碼
1 專案的初體驗 以及前期準備
-
游戲初體驗畫面
略,請去參考博客 -
驗證一下本地第三方包有沒有匯入
python3 -m pygame.examples.aliens
如果沒有出現游戲畫面請先安裝這個包
sudo pip3 install pygame
-
開始搭建目錄結構
- 創建主程式 匯入素材圖片,新建 名為:“飛機大戰‘專案
- 建立主程式員 ganme_main.py
- 把素材圖片都匯入到專案檔案夾中
-
游戲的邏輯
- 主要的邏輯,就是判斷一系列的圖片運動碰撞,產生不同的事件 ,從而產生不同的效果
2.開始繪制背景和視窗
- 首先我們要注意到兩個重要的pygame方法 一個是初始化和卸載方法
import pygame
pygame.init()
#游戲代碼
'pygame,quit()' ,卸載所有的pygame模塊 在游戲結束之前呼叫!如何才是真正的結束游戲;
- pygame中的 游戲中的坐標系?

pygame中專門準備了一個類Rect用于描述矩形區域,在本專案中,所有的圖片都是Rect的創建出來的矩形物件,注意:即使你不初始化它 你也一樣可以使用它 ,注意這個類你需要傳入坐標值 還有其大小

juxin = pygame.Rect(100,50,120,12)
回傳的就是/
print ( '%d %d' %juxin.size )//獲取的是大小,......具體的屬性還有回傳值請去查看api檔案size是一個元組屬性
- 如何創建出一個游戲視窗?
- 同樣的道理,我們的pygame也提供了專門的模塊去處理,display模塊,這個模塊下可的兩個方法可以繪制游戲的視窗
- 示例代碼
# 注意一下這個方法回傳的是一個視窗物件,視窗默認與螢屏一樣大,為此我們可以來設定一些
+++
# 第一個引數型別是元祖(),其它的兩個引數就不管它了,如果你感興趣就去查閱python檔案
screen = pygame.dispaly.set_mode( (480,700), )
while True:
pass
+++
- 如何把圖片繪制上去視窗?
- 具體核心就是:
-
- 加載圖片的資料 pygame.image.load("圖形目錄"),到記憶體中
-
- 使用螢屏物件的 blit方法把圖搞到指定的位置
-
- 使用pygame.dispaly.update()更新整個螢屏的顯示
核心代碼實體
- 使用pygame.dispaly.update()更新整個螢屏的顯示
+++ bg = pygame.image.load('./images/background.jpg') screen.bit(bg,(0,0)) pygame.dispaly.update() +++ - 繪制其它的圖片?
- 其實這個也比較好理解,你可以在之前繪制的背景上再去繪制圖形,注意,注意 所有的圖片都應該是矩形的,不同的圖片只是設定了一些透明上去,
3.原始碼分析
- 如果我們有N多圖片要繪制呢?
- 其實我可以再完成所有的繪制軸再去呼叫 pygame.dispaly.update()
- 在原始碼中screen物件是一個記憶體中的螢屏資料物件,可以理解為一個畫布 ,
- screen.blit可以再畫布上繪制很多很多圖形,這些圖形有可能發生覆寫,我們在記憶體中虛擬繪制
- 最后我們再更新上去,以便于提高性能dispaly.update()
4.影片實作原理
原理就是 影片幀 ,說白了就是快速的圖片變化,利用視覺差搞出影片效果
- 在源代碼中 ,update方法實際上就產生了一幀,而要完成連貫的影片 需要最少60幀/s
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/175712.html
標籤:Python
