最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 實現(xiàn) 貪吃蛇大作戰(zhàn) 代碼分享

 更新時間:2016年09月07日 08:55:13   作者:Crossin  
本文給大家分享的是一個使用cocos2d-python游戲引擎庫制作出來的貪吃蛇大作戰(zhàn)的游戲代碼,基于Python 2.7 和 cocos2d 庫,有需要的小伙伴可以參考下

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

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

【動圖】

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

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

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

pip install cocos2d

代碼實現(xiàn)上的幾個難點:

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

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

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

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

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

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

相關文章

  • 詳解用python計算階乘的幾種方法

    詳解用python計算階乘的幾種方法

    這篇文章主要介紹了詳解用python計算階乘的幾種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • Python實現(xiàn)E-Mail收集插件實例教程

    Python實現(xiàn)E-Mail收集插件實例教程

    這篇文章主要給大家介紹了關于Python實現(xiàn)E-Mail收集插件的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧
    2019-02-02
  • Python3如何使用tabulate打印數(shù)據(jù)

    Python3如何使用tabulate打印數(shù)據(jù)

    這篇文章主要介紹了Python3如何使用tabulate打印數(shù)據(jù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • Python3 實現(xiàn)串口兩進程同時讀寫

    Python3 實現(xiàn)串口兩進程同時讀寫

    今天小編就為大家分享一篇Python3 實現(xiàn)串口兩進程同時讀寫,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • python的廣播機制詳解

    python的廣播機制詳解

    大家好,本篇文章主要講的是python的廣播機制詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • python算法深入理解風控中的KS原理

    python算法深入理解風控中的KS原理

    這篇文章主要為大家介紹了python算法深入理解風控中的KS原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2021-11-11
  • python修改字典鍵(key)的方法

    python修改字典鍵(key)的方法

    在本篇文章里小編給大家整理的是關于python修改字典鍵(key)的方法以及相關知識點,需要的朋友們參考下。
    2019-08-08
  • Python 2.7.x 和 3.x 版本的重要區(qū)別小結

    Python 2.7.x 和 3.x 版本的重要區(qū)別小結

    這篇文章主要介紹了Python 2.7.x 和 3.x 版本的重要區(qū)別小結,需要的朋友可以參考下
    2014-11-11
  • Python3利用Qt5實現(xiàn)簡易的五子棋游戲

    Python3利用Qt5實現(xiàn)簡易的五子棋游戲

    這篇文章主要為大家詳細介紹了Python3利用Qt5實現(xiàn)簡易的五子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Pandas缺失值刪除df.dropna()的使用

    Pandas缺失值刪除df.dropna()的使用

    本文主要介紹了Pandas缺失值刪除df.dropna()的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07

最新評論

塘沽区| 康平县| 商河县| 任丘市| 新余市| 敖汉旗| 遂川县| 丁青县| 宣武区| 阿拉善盟| 孝感市| 富平县| 伊川县| 寻乌县| 罗源县| 华容县| 四川省| 秀山| 阳高县| 汶川县| 铜陵市| 淮滨县| 义马市| 陆良县| 苏尼特右旗| 济宁市| 宾川县| 永德县| 衡水市| 盐边县| 慈利县| 汝南县| 海口市| 沙河市| 昌吉市| 西乡县| 蓝田县| 镇康县| 玉门市| 搜索| 柳江县|