Cocos Creator教程:The Cannon 2,第2部分

欢迎来到我的Cocos Creator教程的第二部分! 在第1部分中,我介绍了创建节点,启用物理学,启用碰撞以及挂钩用户输入的过程。 在这一部分中,我将介绍产卵的流星,并用大炮向它们发射子弹。 让我们开始吧!

创建预制件

预制是预制的缩写; 顾名思义,它是在游戏运行之前加载的资源。 它们非常方便,在本教程中我们将大量使用它们。

我们要做的第一件事是为我们的游戏创建子弹预制。 在Cocos中做到这一点的方法非常简单:

  1. 将您的项目符号资源拖到场景编辑器中,使其显示在节点树中
  2. 将其从节点树拖回文件导航器
  3. 而已! 将预制件拖入文件导航器后,它应如下所示:

然后,您可以继续从节点树中删除项目符号。

我们还需要子弹与其他物理对撞机相撞。 要开始编辑它,只需在文件导航器中双击预制件,使其出现在场景编辑器中,然后我们就可以像其他节点一样开始对其进行编辑。

因此,正如我前面提到的,我们需要此子弹成为物理对撞机。 继续,给它一个RigidBody组件,然后给它一个PhysicsBoxCollider组件-您知道该练习。

需要注意的一件事是,尽管RigidBody组件中的“子弹”复选框似乎非常适合我们的预制件,但这不是必需的。 但是,我们要做的是将“类型”属性设置为“运动”,以使其不受重力影响。

创建项目符号脚本

创建一个Bullet.ts文件,将其添加到我们的子弹预制中,让我们继续进行。 这将是一个非常简单的文件,除了在经过一定时间后销毁子弹外,什么也不做。 这是整个文件:

下一步是在屏幕上显示一些流星。 这就是我们要做的。

创建流星预制件

我们将以创建子弹头预制件,刚体和物理对撞机等所有方式来创建Meteor预制件。 我会让您这样做,但是请确保您保留以下属性:

  1. 选中RigidBody复选框启用联系侦听器,以便在检测到冲突时触发回调函数
  2. 将RigidBody 类型保持为“动态”,但将“ 重力比例 ”更改为0,以使其不受重力影响。 这样一来,当流星与我们的大炮相撞时,它就不会推动大炮了。

然后创建一个Meteor.ts脚本并将其添加到我们的流星中。 现在,我们可以开始设置流星编码了。

创造流星

现在我们需要生成流星。 我们将采用与生成子弹几乎相同的方式来执行此操作,除了将位置设置为已知点(即枪管末端)外,我们将为流星提供一个随机位置和一个随机位置速度,它们以随机的时间间隔生成。 为此,将以下代码添加到您的Game.ts文件中:

但是正如您所看到的,当流星被射出时,它们现在就被推了。 我们要消灭那些流星。 为此,我们将不得不编辑Meteor.ts 脚本。

编码流星第1部分:自毁

我们需要流星在一定的时间间隔后自毁,这样我们才不会有一群僵尸流星四处飞扬并占用屏幕外的内存。 将以下自毁代码(与我们为子弹编写的代码相同)插入Meteor.ts

第2部分将进行介绍。我们介绍了预制的创建和实例化,碰撞回调以及其他一些内容。 在第3部分中,我们将对项目进行一些润饰,使其看起来不错。

您可以在Github上查看这些教程的完整代码。

  • 第1部分
  • 第三部分