微信羣裏最大的騷擾源有兩種:node
一是轉發#吱口令#~!@#¥%……&*,長按複製此消息領紅包之類的python
另外一種就是各類小程序和小遊戲的分享編程
前天有同窗無心間把一個小遊戲分享到了答疑羣中,我看了一下,其實遊戲的代碼邏輯並不複雜(簡化版的跳一跳,套上個吃雞的主題),因而就隨手立了一個FLAG:小程序
正好我最近也有研究下小遊戲的打算,趁週日沒什麼事,說幹就幹吧。微信
不過做爲上手項目,我選擇了一個更熟悉的遊戲:打飛機svg
話很少說,先上成品:工具
遊戲地址:組件化
Cocos Creator | Plane(暫時只提供手機版,電腦上比例沒限制)開發工具
文章剛發出去一陣子估計人會不少,遊戲加載慢,打不開能夠稍等一下子。flex
老讀者應該知道,以前咱們用 pygame 作過這個打飛機遊戲的教程。公衆號(Crossin的編程教室)對話裏回覆關鍵字 pygame 可獲取教程及代碼。
但 pygame 開發的遊戲是沒法經過網頁發給別人在線玩的,更不能作成微信小遊戲。
因此我此次是用了遊戲引擎 Cocos Creator。它使用 JavaScript 做爲開發語言,開發出的遊戲能夠直接生成微信小遊戲、網頁、iOS、安卓等平臺上的版本。衝着這一點,也就勉強能夠忍受用 js 開發的痛苦了。
除了 Cocos Creator,其實我最近也嘗試了另外兩個比較經常使用的網頁小遊戲引擎:Egret 和 Unity
簡單分享下個人體驗:
Cocos Creator
我是 cocos2dx 的老用戶,從很早版本就開始使用,用它開發過商業遊戲。cocos2d 最先源自 python,以前教室也發過一些用 cocos2d 系引擎(python/js)開發的遊戲(分別回覆關鍵字 貪吃蛇、皮皮蝦、火箭),但說實話,各類版本和小 bug 讓人體驗真的不太好,因此我是想着換別的試試。但 Cocos Creator 意外地讓我眼前一亮。它其實已經拋棄了之前 2dx 的開發流程,改走組件化、數據驅動的模式(應該是借鑑了 unity 的優勢),跟 cocos2dx 能夠說是徹底兩樣東西了。雖然我以爲有些地方讓人不習慣(主要是 node 和組件的關係變化),另外代碼提示和調試信息仍是比較弱(也多是我姿式不對),但總得感受還行,應該是比較適合我本身的需求。
Egret
Egret 在前兩年 HTML5 小遊戲剛興起的時候發展很是快,一整套的開發工具也很完善,不只能夠寫小遊戲,也能夠寫 HTML5 的移動頁面。但我此次在用的時候,在第一步用戶登陸的地方就卡住了,各類沒法鏈接,就根本用不了開發工具,官網搜了一圈也沒找到解決方案(據說開發者羣比較活躍,須要在那裏問問題)。後來好不容易纔弄成功了。Egret 仍是基於代碼的開發模式,有一系列配套工具處理開發中的各類環節,我的感受更適合團隊分工使用。
Unity
Unity 做爲世界級的老牌引擎,功能足夠強大,跟前倆就不是一個級別的(Cocos Creator 大概就是 2D 低配版的 Unity)。但從另外一個角度來講,也所以太「重」了。並且由於各類素材是基於 3D 模型的,須要有必定專業技能才能搞定。固然它也提供了素材商店,裏面有不少免費素材可使用。以前咱們的文章 地球上全部人站在一塊兒會是什麼樣? 裏就用到了 Unity。
因此僅從我我的開發小遊戲自娛自樂的角度來看,我本是想拋棄過去 cocos 那一套東西,結果試了一圈發現 cocos creator 更適合……固然這不表明其餘的引擎很差,仍是要看你的需求,選擇合適你的。
今天這篇我就不講遊戲的代碼實現了,感興趣的能夠先看看代碼,地址見文末。由於一來是改用了 JavaScript,二來數據驅動的模式和以前代碼驅動的模式有很大的區別。
舉個例子:之前你要在遊戲上顯示一行文字,你須要在代碼中定義一個 Label 對象,添加到顯示層上,設置它的位置、顯示效果、顯示的文字內容。而如今你只要拖動一個 Label 組件到場景中,在屬性面板上輸出相關數值便可。
以後我也會寫更多的小遊戲,對此感興趣的同窗,或者有什麼好玩的點子,均可以留言討論。若是你們以爲有須要,後面我能夠來詳細寫下這方面的教程。
本文相關的代碼和素材已上傳,須要的同窗請在公衆號(Crossin的編程教室)對話欄回覆關鍵字 飛機
════
其餘文章及回答:
如何自學Python | 新手引導 | 精選Python問答 | 如何debug? | Python單詞表 | 知乎下載器 | 人工智能 | 嘻哈 | 爬蟲 | 我用Python | 抓抖音 | requests | AI平臺 | AI名畫
歡迎微信搜索及關注:Crossin的編程教室