Phaser3入门教程:第一个Phaser3游戏(中文版)(六)

  • 物体的速度:一个物理的世界

 

Phaser支持不同的物理系统,可作为插件作用于场景中。我们前面设置了Arcade物理模式,这是一个有碰撞功能的物理引擎。所以我们在这个游戏中使用该物理模式。这是一个简单且轻量的物理系统,可以很好运行在移动端的浏览器上。

当赋予精灵体一个body属性后,它就是一个受Acrade物理系统影响的物体了。它可以继承Acrade物理引擎的许多属性和方法。例如模拟一个重力效果,我们可以这样做:

player.body.setGravityY(300)

这是随意设置的一个数值,这比合理的值要高很多,使物体感觉下落得非常快。如果将这段代码加入part5.html,你会发觉玩家会一直下落,而不会停在之前创建的地面上:

这是因为我们并没有去检测玩家角色和地面之间的碰撞。

我们已告诉Phaser地面和平台是静物,它们是不能移动的,也不能在角色碰到时它让角色马上停下来。但我们可以在角色碰到地面或平台时产生一个碰撞信号,碰撞后会对物体的速度产生影响,从而影响角色的下落状态。

我们为平台和角色创建一个碰撞器对象,物理引擎会监视他们检测它们是否发生碰撞或重叠,如果发生这种情况就会调用设定好的回调函数,但在这里我们只发生碰撞效果而不再做其他处理:

this.physics.add.collider(player, platforms);

碰撞器的功能就是让检测到碰撞的两个物体分离开来。在这个例子中两个对象分别就是玩家角色和平台组。碰撞器会处理角色对平台和地面的碰撞。而坚硬的平台和地面是不可能晃动的。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值