Phaser-游戏之旅
虽然这个小游戏逻辑不是很复杂,但为了熟悉Phaser这个游戏框架的使用方法所以就选择了它。
另外第一次在项目中尝试使用ES6,之后利用babel进行转换。
自动化构建:gulp(其他文件复制和解析) + webpack(负责js的模块打包) + browser-sync(实时预览);
刚开始拿到项目的交互后,对游戏功能进行了分析,然后将整个游戏大致分”游戏启动前、加载、游戏、结束“4个场景。确定场景后,考虑实现的方式。我选择webpack + gulp来打包我的代码,
我的工程目录大致如下所示:
文件目录如下:
.
├── src
│ ├── img //存放图片资源 │ ├── js
│ │ ├── app //一些自己写的库 │ │ ├── lib //第三方库 │ │ ├── prefabs //存放游戏元件 │ │ ├── states //存放游戏场景 │ │ │ ├── boot.js
│ │ │ ├── preload.js
│ │ │ ├── play.js
│ │ │ └── over.js
│ │ └── index.js //程序入口 │ ├── css
│ │ └── style.less
│ └── media //存放媒体文件 ├── index.html
├── gulpfile.js
└── webpack.config.js
程序入口
主要是利用es6的class创建一个游戏对象并继承于Phaser.Game,然后将所有的场景添加到Phaser.state中。
class Game extends Phaser.Game { // 子类继承父类Ph
