Python——項目-小游戲


開始我們的項目 飛機大戰

項目源碼

1 項目的初體驗 以及前期准備

  1. 游戲初體驗畫面
    略,請去參考博客

  2. 驗證一下本地第三方包有沒有導入

  python3 -m pygame.examples.aliens
  如果沒有出現游戲畫面請先安裝這個包
  sudo pip3 install pygame
  1. 開始搭建目錄結構

    • 創建主程序 導入素材圖片,新建 名為:“飛機大戰‘項目
    • 建立主程序員 ganme_main.py
    • 把素材圖片都導入到項目文件夾中
  2. 游戲的邏輯

    • 主要的邏輯,就是判斷一系列的圖片運動碰撞,產生不同的事件 ,從而產生不同的效果

2.開始繪制背景和窗口

  1. 首先我們要注意到兩個重要的pygame方法 一個是初始化和卸載方法
import pygame

pygame.init()
#游戲代碼
'pygame,quit()' ,卸載所有的pygame模塊 在游戲結束之前調用!如何才是真正的結束游戲;
  1. pygame中的 游戲中的坐標系?

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

juxin = pygame.Rect(100,50,120,12)
返回的就是/
print ( '%d %d' %juxin.size )//獲取的是大小,......具體的屬性還有返回值請去查看api文檔size是一個元組屬性
  1. 如何創建出一個游戲窗口?
  • 同樣的道理,我們的pygame也提供了專門的模塊去處理,display模塊。這個模塊下可的兩個方法可以繪制游戲的窗口
  • 示例代碼
# 注意一下這個方法返回的是一個窗口對象。窗口默認與屏幕一樣大。為此我們可以來設置一些
+++
# 第一個參數類型是元祖(),其它的兩個參數就不管它了。如果你感興趣就去查閱python文檔
    screen =  pygame.dispaly.set_mode( (480,700), )
    while True:
    pass
+++
  1. 如何把圖片繪制上去窗口?
    • 具體核心就是:
      1. 加載圖片的數據 pygame.image.load("圖形目錄"),到內存中
      1. 使用屏幕對象的 blit方法把圖搞到指定的位置
      1. 使用pygame.dispaly.update()更新整個屏幕的顯示
        核心代碼實例
    +++
    bg = pygame.image.load('./images/background.jpg')
    screen.bit(bg,(0,0))
    pygame.dispaly.update()
    +++
    
  2. 繪制其它的圖片?
    • 其實這個也比較好理解,你可以在之前繪制的背景上再去繪制圖形。注意,注意 所有的圖片都應該是矩形的。不同的圖片只是設置了一些透明上去。

3.源碼分析

  1. 如果我們有N多圖片要繪制呢?
    • 其實我可以再完成所有的繪制軸再去調用 pygame.dispaly.update()
    • 在源碼中screen對象是一個內存中的屏幕數據對象,可以理解為一個畫布 ,
    • screen.blit可以再畫布上繪制很多很多圖形,這些圖形有可能發生覆蓋,我們在內存中虛擬繪制
    • 最后我們再更新上去。以便於提高性能dispaly.update()

4.動畫實現原理

原理就是 動畫幀 ,說白了就是快速的圖片變化。利用視覺差搞出動畫效果
- 在源代碼中 ,update方法實際上就產生了一幀,而要完成連貫的動畫 需要最少60幀/s


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM