L01 我想开发游戏

Jietu20170530-105841

需要的软件

Phaser的开发,需要

  • 一个服务器软件,windows推荐使用wampserver,Mac推荐xamp。
  • 一个编辑器软件,推荐sublime。
  • 一个浏览器,推荐chrome。

工作流程

一个游戏的大致开发流程是这样的。

  1. 创建一个HTML,基于Phaser框架,编写有些代码。
  2. 在本地服务器中,开启这个HTML
  3. 输出游戏结果

了解了Phaser游戏开发的基本流程,接下来来是深入了解第1步,编写游戏代码的流程。主要分为两个部分:

  1. 编写JS代码
  2. 创建游戏对象
  3. 编写状态机函数

游戏流程截图

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对象中会包含以下信息

  1. width、height:游戏对象的尺寸(width,height)
  2. renderer:游戏渲染模式,默认会基于浏览器自动选择。可以选择的选项包括:WEBGL、Canvas和headless
  3. parent:存放游戏的DOM容器。默认情况下,Phaser会自动创建并引用。如果需要自己指定DOM,把DOM元素的id作为parent参数即可。
  4. state:设置游戏状态机。这个是一个{}对象。Phaser默认的状态有:
    1. preload:预加载游戏资源
    2. create:游戏初始化
    3. update:游戏更新

3- 编写状态机对应的函数

表情帝杨迪,在卖发带的时候,佩戴不同的发带,会有不同的性格,演绎不同的人生。

游戏中的状态机,就像是杨迪的发带,不同的状态,游戏会进行不同的操作。Phaser中内置了下面4中状态:

  • preload:预加载游戏资源,在游戏初始化之前,都处于preload状态
  • create:游戏的初始化,创建游戏对象,设置游戏属性,都在这里进行。
  • update:游戏的帧函数,游戏开始后,进入update状态。每一帧都会调用update对应的函数,实现游戏的不断更新。
  • render:游戏数据更新完成后,进入render状态,基于渲染模式,更新舞台中动画内容。

游戏输出

Phaser是基于JavaScript的HTML5引擎,所以不需要编译,直接在本地服务器中,访问我们编写好的HTML文件,就可以输出游戏效果。

因为我还没有在游戏中,添加任何的内容。所以你什么都看不到,不过一个基本的Phaser游戏,已经确确实实的在运行了。

另外,还可以打包成游戏APP,这个话题,将在以后的章节中,设为专题讨论。

联系作者

公众号:拉小登 | 微博:拉登Dony | B站:拉小登Excel

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注