開發工具
Python版本:3.6.4相關模塊:pygame模塊;以及一些Python自帶的模塊。
環境搭建
需要安裝Python並且添加環境變量,具體的PIP安裝需要相關的模塊。
代碼運行方式:
這裡以Win系統為基礎,先輸入cmd進入到運行界面,然後直接cd跳轉到目標文件夾,在窗口中運行遊戲文件就可以玩了。運行出來的效果如下圖所示:
我裡有一份Python從入門到精通的學習資料,價值5980元,現在可以免費送給大家。獲取方式在文末
遊戲簡介
推箱子和貪食蛇一樣,是一個非常經典的古老遊戲,遊戲需要把對應的箱子推到對應的位置才算過關,一不小心就可能出現箱子無法再移動或者通道被堵住的情況,所以非常考驗你的邏輯能力,你需要巧妙利用遊戲地圖中有限的空間,合理安排每個箱子的次序和位置才能順利過關!
移動人物的方式:按鍵盤的↑↓←→鍵控制遊戲人物上下左右移動,R鍵為重新開始本關卡。
代碼實現步驟:
第一步:先定義遊戲精靈類
由於遊戲會涉及到地圖的碰撞檢測,所以需要先定義遊戲中的類,比如推箱子的人,箱子,目標位置,牆。
精靈類:
精靈人物需要有可以移動的能力,可以設置一個模擬移動的選項,因為和地圖上其它的東西性質差不多,所以可以定義為同一個精靈類,但是這個精靈類中的對象還是要有區別的,畢竟人和物需要區分開來。
“箱子”需要具有可以移動的能力,而牆和目標地點不需要具備。
第二步:定義遊戲地圖類
這裡我們定義一個遊戲地圖類,目的是用該類來創建任意的遊戲地圖。因此,該類應當可以增加並保存遊戲元素(人、牆、箱子等),並在屏幕上把地圖畫出來。同時也應當自帶一個方法來判斷此地圖上的箱子是否都已經送到了指定位置(這樣子方便切換關卡):
Step3:定義遊戲界面類
遊戲界面類負責解析levels文件夾下的遊戲各關卡的地圖文件,並利用遊戲地圖類創建並顯示遊戲地圖:
同時因為遊戲地圖面積>遊戲窗口界面, 所以該類需要增加根據人物位置滾動遊戲地圖的功能:
Step4:定義某關的遊戲主循環
主循環主要負責實例化遊戲界面類,並根據按鍵檢測的結果對遊戲界面類進行一些操作:
其中人物移動的邏輯為:
人移動的目標位置為空白格,則人移動;若撞到箱子,箱子可以和人方向一樣移動一格,則人和箱子均移動;其他情況人和箱子均無法移動。
Step5:定義遊戲開始、切換和結束界面
做的比較簡陋,直接給源碼吧。
開始界面:
切換界面:
結束界面:
Step6:實現遊戲主函數
把所有界面串起來就好啦:
再隨手加一個遊戲的背景音樂,我們就可以開始正常玩遊戲了!