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

  • 平台

 

我们刚刚在create函数中加了一段代码,让我们详细解释一下,首先是这句:

platforms = this.physics.add.staticGroup();

这句代码创建了一个静态物体组,并赋值给了变量platforms。在Arcade物理模式中,有两种属性的物体:动体和静体。所谓动体就是会移动的物体,它们因为有速度或加速度而移动,也可能被别的物体碰撞后被弹开。静体就是不会移动的物体,它们有着固定的位置和大小,不会受重力而下降,你也不能给它们一个速度让它们跑起来。就像地面或平台,可以让角色在上面跑动。

那么什么是组呢?我们把相似的若干物体放在一各容器,控制多个物体就像控制一个物体一样。这样我们就可以检测这个组与其他物体的碰撞情况。通过组的方法函数create,可以创建组内的子物体,并且自动赋予它们相应的物理属性,和一些相关的处理。

在我们的平台组里我们用create创建了一些平台:

platforms.create(400, 568, 'ground').setScale(2).refreshBody();

 

platforms.create(600, 400, 'ground');

platforms.create(50, 250, 'ground');

platforms.create(750, 220, 'ground');

回顾上一节创建的场景:

我们载入了一张名为ground的图片,这是一个简单的绿色矩形,400x32像素,正好可以当我们的平台用:

第一行的代码是在坐标(400,568)新建了一个地面(请牢记,图片的原点是在中心)。问题是我们需要一个和屏幕一样宽的地面,以避免玩家掉下去。怎么办呢?其实我们可以将图片拉宽到两倍。调用方法setScale(2),图片就变成我们所需的800x64大小了。紧接着我们必须调用refreshBody()方法,因为改变一个静物后,要告诉系统更新它。

地面处理好了后,下面就是处理其他的平台:

platforms.create(600, 400, 'ground');

platforms.create(50, 250, 'ground');

platforms.create(750, 220, 'ground');

这个过程和前面相似,只是我们不用再改变图片的大小了,因为原尺寸就正好。

这三个平台放在合适的位置,以便玩家的角色能在它们之间跳跃。

下一节我们就要加上玩家的角色了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值