60行Python PyGame代碼實現(xiàn)簡單的迷宮游戲
迷宮
迷宮的邏輯很簡單,就是用上下左右鍵控制方塊運動,然后定義一下墻壁,指明方塊不能穿過墻壁即可。
當然,還是老規(guī)矩,在具體實現(xiàn)之前,先設(shè)置一些常量
import pygame import sys # 定義顏色 GRAY = (205, 205, 205) WHITE = (255, 255, 255) RED = (255, 0, 0) GREEN = (0, 255, 0) SIZE = 40
接下來設(shè)置一個按鍵字典,用于控制方塊運動
KEY_DCT = { pygame.K_LEFT : [-1, 0], pygame.K_RIGHT : [1, 0], pygame.K_UP : [0, -1], pygame.K_DOWN : [0, 1] }
以左鍵為例,當左鍵按左時,方塊的縱坐標不變,而橫坐標減去1,顧對應(yīng)( − 1 , 0 ) (-1,0)(−1,0)。
迷宮表示以及初始化
考慮到更好的自定義迷宮的支持,采用字符列表作為迷宮的映射,以#, I, O分別表示墻壁、玩家位置以及出口位置。從而上面的迷宮可表示如下
maze = [ "############", "#I # #", "# ## ### #", "# # #", "# # #### #", "# ## #", "# ### # # #", "# ## # #", "# # # # #", "## # ## #", "# # #O# ###", "############" ] ???????maze = [list(m) for m in maze]
之所以采用嵌套的字符列表,乃因字符串不支持類似s[1]=2這種操作。
接下來要做的,就是定義一個繪圖函數(shù),可以將迷宮和玩家統(tǒng)一繪制出來,實現(xiàn)如下。如果后續(xù)有升級的需求,在迷宮中放置一些不明物體,從而需要的字符種類更多,那么可以考慮將繪圖邏輯封裝成字典。
# 繪制迷宮地圖 def init(strLst = maze): # 第i行,第j列 for i,s in enumerate(strLst): for j,ch in enumerate(s): if ch not in "#IO": continue rect = (j*SIZE, i*SIZE, SIZE, SIZE) if ch == "#": pygame.draw.rect(win, GRAY, rect,5) elif ch == "I": player = [j, i] pygame.draw.rect(win, RED, rect) elif ch == "O": pExit = [j, i] pygame.draw.rect(win, GREEN, rect) return player, pExit
游戲主循環(huán)
在實現(xiàn)主循環(huán)之前,需要對pygame進行初始化,包括初始化窗口等
# 初始化pygame pygame.init() win = pygame.display.set_mode( (len(maze[0]) * SIZE, len(maze) * SIZE)) pygame.display.set_caption("迷宮游戲") running = True
其中,running為游戲結(jié)束的判定變量,其主循環(huán)內(nèi)容如下
到此這篇關(guān)于60行Python PyGame代碼實現(xiàn)簡單的迷宮游戲的文章就介紹到這了,更多相關(guān)Python PyGame迷宮內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 利用pyttsx3文字轉(zhuǎn)語音過程詳解
這篇文章主要介紹了python 利用pyttsx3文字轉(zhuǎn)語音過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09Python3訪問并下載網(wǎng)頁內(nèi)容的方法
這篇文章主要介紹了Python3訪問并下載網(wǎng)頁內(nèi)容的方法,實例分析了Python頁面抓取及寫入文件的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07基于MTCNN/TensorFlow實現(xiàn)人臉檢測
這篇文章主要為大家詳細介紹了基于MTCNN/TensorFlow實現(xiàn)人臉檢測,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05pycharm終端無法激活conda環(huán)境的解決辦法
如果您在PyCharm終端中無法激活conda環(huán)境,可能是由于PyCharm沒有正確配置conda解釋器,這篇文章主要給大家介紹了關(guān)于pycharm終端無法激活conda環(huán)境的解決辦法,需要的朋友可以參考下2023-09-09基于Python編寫一個簡單的服務(wù)注冊發(fā)現(xiàn)服務(wù)器
我們都知道有很多的非常著名的注冊服務(wù)器,例如:?Consul、ZooKeeper、etcd,甚至借助于redis完成服務(wù)注冊發(fā)現(xiàn)。但是本篇文章我們將使用python?socket寫一個非常簡單的服務(wù)注冊發(fā)現(xiàn)服務(wù)器,感興趣的可以了解一下2023-04-04