一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python 實現 貪吃蛇大作戰 代碼分享

Python 實現 貪吃蛇大作戰 代碼分享

2020-09-06 11:55Crossin Python

本文給大家分享的是一個使用cocos2d-python游戲引擎庫制作出來的貪吃蛇大作戰的游戲代碼,基于Python 2.7 和 cocos2d 庫,有需要的小伙伴可以參考下

Python 實現 貪吃蛇大作戰 代碼分享

感覺游戲審核新政實施后,國內手游市場略冷清,是不是各家的新游戲都在排隊等審核。媒體們除了之前競相追捧《Pokemon Go》熱鬧了一把,似乎也聽不到什么聲音了。直到最近幾天,突然聽見好幾人都提到同一個游戲,網上還有人表示朋友圈被它刷屏了。(不過現在微信已經悍然屏蔽了它的分享)

這個游戲就是現在iOS免費榜排名第一的《貪吃蛇大作戰》。一個簡單到不行的游戲,也不知道怎么就火了。反正一款游戲火了,各路媒體、專家總能說出種種套路來,所以我就不發表意見了。不過這實在是一個挺好實現的游戲,于是一時技癢,拿 Python 做了一個實現。

【動圖】

Python 實現 貪吃蛇大作戰 代碼分享

demo 花了大約一整天時間,實現了基本效果(沒做加速)。代碼已上傳 GitHub:

GitHub - crossin/gluttonous: game of gluttonous python(仿制《貪吃蛇大作戰》)

使用了 cocos2d-python 作為游戲引擎。如果要運行代碼,需要安裝 Python 2.7 和 cocos2d 庫。

pip install cocos2d

代碼實現上的幾個難點:

運動方向的控制。鍵盤上只有上下左右四個鍵,要轉換到 360 度的運動方向,需要用到不少三角函數運算。

蛇身子的處理。這里我用了一個路徑列表,記錄蛇頭經過的位置,身子則根據路徑中的對應數據更新位置。

電腦的運動策略。這里我用的方法是,對于在頭部范圍內的其他蛇身,計算蛇身與蛇頭連線的角度,和自身的運動方向進行比較,如果角度相差很小,就意味著會撞上,于是調整當前運動方向。

運行效率。最大的效率瓶頸在于屏幕上的圖片繪制。最開始完成的版本,場上蛇身總量達到 300 左右就卡頓嚴重了。后來用 cocos 的 BatchNode 替代直接添加,大大減少了圖片繪制次數,可保證游戲順暢運行。但如果玩到分鐘很高,依然會出現效率問題,暫時沒有解決。

平心而論,Python 并不適合做商業游戲,而用來學習或者開發原型倒也是個不錯的選擇。現在很流行的手機游戲開發引擎 cocos2d-x,最初就是源于 Python 的版本,也就我這次使用的 cocos2d 庫。雖然在功能上有一定差距,但引擎結構是非常接近的,包括其中場景和層的概念、動作、事件、刷新等。

只是心血來潮,隨手寫寫,代碼沒怎么優化,注釋也基本沒有。大家湊合看看。如果點贊、轉發的人多,之后會考慮繼續優化,并專門做一個系列教程。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91精品国产高清久久久久久91 | 精品国产91久久久久久久a | 美女张开腿黄网站免费精品动漫 | 亚洲国产精品ⅴa在线观看 亚洲国产高清一区二区三区 | 天天排行网 | 四虎www | 久久噜国产精品拍拍拍拍 | 交换余生在线播放免费 | 毛毛片在线 | 成人免费片 | 好湿好紧太硬了我太爽了网站 | 国产高清免费午夜在线视频 | 果冻传媒在线播放观看228集 | 视频一区在线观看 | 日本免费精品视频 | 动漫美女胸被狂揉扒开吃奶动态图 | ipx-177绝对领域在线观看 | 日韩人成 | 俺去啦最新地址 | 男人亚洲天堂 | 99热久久国产精品这里 | 小寡妇好紧进去了好大看视频 | 国产精品亚洲片在线不卡 | 国产成人精品福利色多多 | 国产午夜久久精品 | 国产福利不卡视频 | 韩国美女被的免费视频 | 2020年最新国产精品视频免费 | 国产精品成人在线播放 | ffee性xxⅹ另类老妇hd | 成人久久18网站 | 久久久无码精品亚洲A片软件 | 午夜桃色剧场 | 精品国产品香蕉在线观看 | 男人猛戳女人下部30分钟 | 国产免费成人在线视频 | 视频网站入口在线看 | 国产在线步兵一区二区三区 | 欧美一区二区三区四区五区六区 | 扒开胸流出吃奶 | 国产裸舞福利资源在线视频 |