前面说过了,phaser.js 已经由版本2 更新至版本3
那么就大胆的探索一下,他们是否有区别呢,phaser3 能否继承 phaser3 的特性?不才拿先前的例子比较一下。
现在用 Phaser3 来写一个接钻石的游戏。
按照原先的步骤:
1、初始化舞台
phaser3 里面是:
和原先的写法:
差别还是蛮大的,多了很多参数。
2、载入资源建立角色
这点差别倒不是很大(phaser2):
但是格外也提示一点!:
使用 phaser3 不能直接拖到浏览器本地运行了!!
必须建立一个 http 服务器(apache, ngnix),哪怕只是 Python 的简单服务器比如 python -m http.server 否则本地资源无法载入。
但是定义角色却是:
phaser3 定义角色则是直接添加到物理引擎中去,phaser2 则是先载入角色,再定义物理:
2.a 设置背景
2.b 定义钻石
3、定义控制按键,设置分数
phaser3 中定义控制是在 create() 中,而 phaser2 则是在 update() 中,响应按键的方式也有差别,基本无法继承。
3.b设置分数显示文本
差别不是很大,把 game 换成 this 基本就 ok 了。
4、让背景动起来
其实是 tileSprite 的应用。
和phaser2的:
有差别,但区别也不是很大,都在 update() 函数中。
5、物理效果
首先我们要看前面的定义:
参数更多,更复杂了。
6、碰撞(叠加)事件
和 phaser2 对比:
差别有,,不过大体上算能懂。
7、开演,钻石雨
这算是惊喜吗?phaser3 增加了时间事件,不用在 update 中蒙时间了。
原先我们把这部分全部放在 update 函数里面,现在我们用 timedEvent
在 create 函数中:
8、游戏结束
同样在 timedEvent 定义的 onEvent 函数可以设置。图片使用 destroy 方法,如果是物理角色则采用 disableBody(true,true) 的方法,对于group 似乎是 RemoveandHide
结论,phaser3 对比 phaser2 拥有更多参数,可以不考虑继承,直接学习 phaser3,功能也更强大。phaser2 的优势?也许历史比较久,如果学习以前的代码可以考虑下。
试玩地址:
领取专属 10元无门槛券
私享最新 技术干货