本文給大家分享的是一個使用cocos2d-python遊戲引擎庫製作出來的貪吃蛇大作戰的遊戲代碼,基於Python 2.7 和cocos2d 庫,有需要的小伙伴可以參考下
感覺遊戲審核新政實施後,國內手遊市場略冷清,是不是各家的新遊戲都在排隊等審核。媒體們除了之前競相追捧《Pokemon Go》熱鬧了一把,似乎也聽不到什麼聲音了。直到最近幾天,突然聽見好幾人都提到同一個遊戲,網路上還有人表示朋友圈被它刷屏了。 (不過現在微信已經悍然屏蔽了它的分享)
這個遊戲就是現在iOS免費榜排名第一的《貪吃蛇大作戰》。一個簡單到不行的遊戲,不知道怎麼就火了。反正一款遊戲火了,各路媒體、專家總能說出種種套路來,所以我就不發表意見了。不過這實在是一個挺好實現的遊戲,於是一時技癢,拿 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 函式庫。雖然在功能上有一定差距,但引擎結構是非常接近的,包括其中場景和層的概念、動作、事件、刷新等。
只是心血來潮,隨手寫寫,程式碼沒怎麼優化,註解基本上沒有。大家湊合看看。如果按讚、轉寄的人多,之後會考慮繼續優化,並專門做一個系列教學。
更多Python實現貪吃蛇大作戰相關文章請關注PHP中文網!

numpyArraysareAreBetterFornumericalialoperations andmulti-demensionaldata,而learthearrayModuleSutableforbasic,內存效率段

numpyArraySareAreBetterForHeAvyNumericalComputing,而lelethearRayModulesiutable-usemoblemory-connerage-inderabledsswithSimpleDatateTypes.1)NumpyArsofferVerverVerverVerverVersAtility andPerformanceForlargedForlargedAtatasetSetsAtsAndAtasEndCompleXoper.2)

ctypesallowscreatingingangandmanipulatingc-stylarraysinpython.1)usectypestoInterfacewithClibrariesForperfermance.2)createc-stylec-stylec-stylarraysfornumericalcomputations.3)passarraystocfunctions foreforfunctionsforeffortions.however.however,However,HoweverofiousofmemoryManageManiverage,Pressiveo,Pressivero

Inpython,一個“列表” isaversatile,mutableSequencethatCanholdMixedDatateTypes,而“陣列” isamorememory-sepersequeSequeSequeSequeSequeRingequiringElements.1)列表

pythonlistsandArraysareBothable.1)列表Sareflexibleandsupportereceneousdatabutarelessmory-Memory-Empefficity.2)ArraysareMoremoremoremoreMemoremorememorememorememoremorememogeneSdatabutlesserversEversementime,defteringcorcttypecrecttypececeDepeceDyusagetoagetoavoavoiDerrors。

Python和C 各有優勢,選擇應基於項目需求。 1)Python適合快速開發和數據處理,因其簡潔語法和動態類型。 2)C 適用於高性能和系統編程,因其靜態類型和手動內存管理。

選擇Python還是C 取決於項目需求:1)如果需要快速開發、數據處理和原型設計,選擇Python;2)如果需要高性能、低延遲和接近硬件的控制,選擇C 。

通過每天投入2小時的Python學習,可以有效提升編程技能。 1.學習新知識:閱讀文檔或觀看教程。 2.實踐:編寫代碼和完成練習。 3.複習:鞏固所學內容。 4.項目實踐:應用所學於實際項目中。這樣的結構化學習計劃能幫助你係統掌握Python並實現職業目標。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

Atom編輯器mac版下載
最受歡迎的的開源編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

禪工作室 13.0.1
強大的PHP整合開發環境

WebStorm Mac版
好用的JavaScript開發工具