L01 我想开发游戏
需要的软件
Phaser的开发,需要
- 一个服务器软件,windows推荐使用wampserver,Mac推荐xamp。
- 一个编辑器软件,推荐sublime。
- 一个浏览器,推荐chrome。
工作流程
一个游戏的大致开发流程是这样的。
- 创建一个HTML,基于Phaser框架,编写有些代码。
- 在本地服务器中,开启这个HTML
- 输出游戏结果
了解了Phaser游戏开发的基本流程,接下来来是深入了解第1步,编写游戏代码的流程。主要分为两个部分:
- 编写JS代码
- 创建游戏对象
- 编写状态机函数
游戏流程截图
1- 编写JS代码
编写JS代码的方式有两种:
- 在HTML文件里,使用
<script></script>
标签,填写JS代码 - 将游戏代码,保存为单独的JS文件。在HTML文件里,使用这个js文件。
2- 创建游戏对象
js游戏文件运行后,首先会寻找Phaser.Game类型的游戏对象,作为游戏程序的入口。
Game游戏对象,它就像是游戏中的世界,囊括了所有游戏内容。包括人物、背景等,都需要添加到Game游戏对象中。
var game = new Phaser.Game(800, 600, Phaser.AUTO, '', { preload: preload, create: create, update: update });
Game对象的构造函数如下:
new Game(width, height, renderer, parent, state, transparent, antialias, physicsConfig)
创建一个game对象,Game对象中会包含以下信息
- width、height:游戏对象的尺寸(width,height)
- renderer:游戏渲染模式,默认会基于浏览器自动选择。可以选择的选项包括:WEBGL、Canvas和headless
- parent:存放游戏的DOM容器。默认情况下,Phaser会自动创建并引用。如果需要自己指定DOM,把DOM元素的id作为parent参数即可。
- state:设置游戏状态机。这个是一个{}对象。Phaser默认的状态有:
- preload:预加载游戏资源
- create:游戏初始化
- update:游戏更新
3- 编写状态机对应的函数
表情帝杨迪,在卖发带的时候,佩戴不同的发带,会有不同的性格,演绎不同的人生。
游戏中的状态机,就像是杨迪的发带,不同的状态,游戏会进行不同的操作。Phaser中内置了下面4中状态:
- preload:预加载游戏资源,在游戏初始化之前,都处于preload状态
- create:游戏的初始化,创建游戏对象,设置游戏属性,都在这里进行。
- update:游戏的帧函数,游戏开始后,进入update状态。每一帧都会调用update对应的函数,实现游戏的不断更新。
- render:游戏数据更新完成后,进入render状态,基于渲染模式,更新舞台中动画内容。
游戏输出
Phaser是基于JavaScript的HTML5引擎,所以不需要编译,直接在本地服务器中,访问我们编写好的HTML文件,就可以输出游戏效果。
因为我还没有在游戏中,添加任何的内容。所以你什么都看不到,不过一个基本的Phaser游戏,已经确确实实的在运行了。
另外,还可以打包成游戏APP,这个话题,将在以后的章节中,设为专题讨论。
联系作者