《零基礎入門學習Python》筆記 第078講:Pygame:初見
從這一節課開始,我們就來講遊戲開發,那麼在Python中提到遊戲開發,那肯定非Pygame 莫屬了,Pygame 是一個利用SDL 庫實現的模塊,我們先來安裝Pygame。
打開CMD,輸入pip install Pygame,回車即可。
打開IDLE,驗證安裝成功。
Pygame 作為一個遊戲模塊,主要具備哪些功能呢?
- 繪製圖形:能夠繪製圓形、三角形、菱形、矩形這所有我們想像的到的圖形,這跟我們的tkinter一樣,能夠繪製這些圖形。
- 顯示圖片:素材就是以圖片的形式提供的,需要把它們顯示出來。
- 動畫效果。
- 與鍵盤、鼠標和遊戲手柄等外設交互。
- 播放聲音。
- 支持碰撞檢測。
好了,既然是最後一個章節,現在應該不需要一步一步給大家講解了,目前最好的學習方法就是直接分析代碼,來學習Python。
首先看一下這節課的代碼:

運行的效果就是:一隻小蟒蛇,到處走,撞牆之後自動掉頭,我們點右上角關閉,我們發現關閉不了,這是為什麼呢?
這是因為pygame 的事件循環和IDLE 的tkinter 事件循環是衝突的。直接雙擊以Python.exe運行,就可以關閉了。
我們現在來分析代碼,通過代碼來學習Pygame。
首先就是import pygame。import sys 是退出程序要用的。
第一個要執行的就是init(),初始化pygame,為什麼要初始化呢?因為我們的pygame 事實上是一個包,一個包裡麵包含了各種不同功能的模塊,init() 就是初始化這些模塊,讓它們做好準備,隨時待命。
下面接下來是一些變量的設置,我們還不管它們,接著往下看。
我們調用display.set_mode() 創建指定大小的窗口,創建的窗口就是一個Surface對象,size 就是上面定義的變量,實際上是一個元組。
然後設置標題。
我們使用image.load() 加載圖片,加載的圖片也是一個Surface對象。
把圖片加載進去,我們通過get_rect() 來獲得它的當前矩形位置,賦值給position。
然後我們就進入死循環,在死循環裡面,我們移動圖像位置。
我們如何停止程序呢?我們就是通過檢測是否點擊了X ,如果點擊了,就退出,sys.exit()。
移動圖像就是使用矩形位置對象的move() 方法,偏移位置就是speed,x軸偏移-2,y軸偏移+1。
下面兩個if 語句就是檢測是否出了邊界,通過矩形位置對象的left 、right、top、botton 屬性來判斷是否出界,如果要出界,就反方向走。同時,如果左右出界的話,還要水平翻轉一下。
下面填充背景為純白色(255,255,2550)
blit() 就是將一個圖像畫到另一個圖像上。
然後就是刷新界面。
最後就是延遲10毫秒,減緩圖像移動速度。
這節課到此結束,大家好好分析一下代碼,後面會加深難度哦。
0 留言:
發佈留言