微信_小程式_1_認識微信遊戲
微信例子游戲:
工程結構:
## 原始碼目錄介紹 ./js ├── base // 定義遊戲開發基礎類 │ ├── animatoin.js // 幀動畫的簡易實現 │ ├── pool.js // 物件池的簡易實現 │ └── sprite.js // 遊戲基本元素精靈類 ├── libs │ ├── symbol.js // ES6 Symbol簡易相容 │ └── weapp-adapter.js // 小遊戲介面卡 ├── npc │ └── enemy.js // 敵機類 ├── player │ ├── bullet.js // 子彈類 │ └── index.js // 玩家類 ├── runtime │ ├── background.js // 背景類 │ ├── gameinfo.js // 用於展示分數和結算介面 │ └── music.js // 全域性音效管理器 ├── databus.js // 管控遊戲狀態 └── main.js // 遊戲入口主函式
檔案說明:
1.game.js 小遊戲入口檔案。
import './js/libs/weapp-adapter'
import './js/libs/symbol'
import Main from './js/main'
new Main()
//weapp-adapter是預設的遊戲介面卡檔案。
2.game.json 配置檔案,檔案位於根目錄下,完成介面渲染和屬性設定。
ex.
{
"deviceOrientation": "portrait",
}
//key="deviceOrientation"
//value="portrait"(豎屏),landscape(橫屏)
3.runtime目錄:
main檔案,main.js裡有程式的主函式,包括遊戲開始、敵人產生、遊戲偵迴圈、影象繪製、碰撞檢測等。遊戲結束後重新開始的按鈕及事件處理也在這個檔案中。
databus是個全域性狀態管理器,可以回收敵人,回收子彈,被回收的內容,不會進行偵迴圈,就不會繪製到螢幕上。
4.npc目錄:
是敵機類,從類Animation繼承而來,有屬性可以設定敵機飛行速度、敵機影象、預訂的敵機被擊中時爆炸的動畫。
5.player目錄:
玩家戰機,和子彈類。都是從Sprite類繼承而來。其中玩家戰機中有手指控制戰機位置的事件處理。子彈類中有子彈速度引數,及子彈超出螢幕回收的處理邏輯,當然這兩個類都有繪製圖像的資源定義。
6.base目錄:
物件池類,遊戲基礎的精靈Sprite類,和從精靈類繼承而來的簡易的幀動畫類Animation。pool類用於物件回收,Sprite類中宣告的寬度、高度、座標、影象,呼叫介面卡中cavans繪製圖像(戰機)。還有簡單的精靈碰撞(中心點碰撞)的定義。Animation類提供了讓精靈播放預定的幀動畫的功能。
7.lib目錄:
遊戲介面卡程式碼,weapp-adapter 不是小遊戲基礎庫的一部分,今後官方也將不再對 weapp-adapter 進行更新和維護。開發者應該根據自己使用的遊戲引擎,實現自己的 Adapter 來使所用的遊戲引擎適配小遊戲的執行環境。