初窥 phaser2 到phaser3 的异同

前面说过了,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 的优势?也许历史比较久,如果学习以前的代码可以考虑下。

试玩地址:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190920A0NF4I00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券