5. 敌人
系列
您正在阅读 太空射手教程 的第5部分。
- 太空射手,第1部分
- 太空射手,第2部分
- 太空射手,第3部分
- 太空射手,第4部分
- 太空射手,第5部分
- 太空射手,第6部分
- 太空射手,第7部分
- 太空射手,第8部分
- 太空射手,第9部分
- 太空射手,第10部分
- 太空射手,第11部分
- 太空射手,第12部分
- 太空射手,第13部分
提示
在这一章中,我们将学习如何向游戏中添加敌人。
创建敌人
我们将添加三种不同类型的敌人。因此,您应该按照相同的步骤添加敌人。单击添加新对象,然后选择精灵。然后,在名称字段中输入**“Enemy1”,从资产文件夹中选择“enemy1.png”**作为图像。单击应用。
重复这个步骤以添加所有三种敌人。
最后,您应该看到:
我们现在将创建一个名为**“Enemies”**的对象组。这在事件中将很有用,可以引用组中的所有对象,而不必为每个对象重复事件。
提示
阅读此页面以了解有关对象组的更多信息。
单击右上角的对象组编辑器按钮。然后,单击添加新组,一个接一个地添加敌人对象。
最后,将对象组重命名为**“Enemies”**。
为敌人添加生命值
我们使用与玩家相同的生命值行为。编辑Enemy1对象并添加Health行为。
警告
对每个敌人对象重复此步骤。
然后,打开Enemy1的行为页面,保持不变:Health: 100, 最大生命值: 100
打开Enemy2的行为页面,并将Health和最大生命值更改为50。
打开Enemy3的行为页面,并将Health和最大生命值更改为150。
射击敌人
我们将添加几个动作来射击敌人。首先,打开事件选项卡。然后,添加一个新条件,选择我们之前创建的Enemies对象组。将动作选择为碰撞,将对象选择为Bullet;通过这样做,我们可以跟踪子弹对象和敌人之间的碰撞。
如果发生子弹和敌人之间的碰撞,我们需要移除Bullet对象。因此,在前一个条件的旁边添加一个新动作。选择Bullet对象并选择删除对象。
现在,我们需要对敌人造成伤害。选择Enemies并选择对对象造成伤害。然后,输入50作为伤害值。
您应该看到这些动作:
然后,我们需要添加一个额外的条件来确定敌人是否死亡。在最后一个条件下添加一个新事件。选择Enemies作为对象,并选择死亡。现在我们可以跟踪敌人的生命值是否已死亡。
如果敌人死亡,我们应该删除场景中的对象。我们将添加一个新动作来删除对象,就像在先前的步骤中一样。
最后,我们需要为敌人提供移动力。但是,当它们在相机上时,我们应该提供一个力量。因此,我们将添加一个新条件来执行我们的想法。在此条件中,当Enemies的X位置小于中心相机X位置+450时,我们查看。确保在测试的符号中选择少于或等于。
警告
您可能会问为什么我们使用450,因为它是屏幕宽度的一半。请记住,我们的宽度设置为900。如果您使用任何其他分辨率,您需要更改它。
在事件的动作中,我们将给敌人一个力量,就像我们在之前的步骤中所做的那样。确保角度为180度,速度为每秒200像素,并选择瞬间选项。
现在所有的事件都准备好了来射击敌人。你可以在顶部添加一个注释来对这些动作进行分类。
对玩家造成伤害
我们将添加一个新的条件来确定玩家和敌人之间的碰撞。按照以上步骤进行操作。
这一次,我们不会直接给玩家造成伤害,因为会有不同的伤害玩家的情况。因此,我们将使用场景变量。
提示
场景变量很有用,因为它们在场景开始时创建,当场景结束时它们将被销毁。
现在,创建一个动作并在搜索栏中输入**"变量"。然后,选择场景变量的值并单击动作详细信息旁边的按钮。在弹出窗口中,创建一个名为"IsDamaged"的场景变量,并给它的初始值0**。然后点击应用。
然后,选择IsDamaged作为变量,并将场景变量的值更改为40。
像上面那样为敌人添加删除动作。然后,你的动作看起来像下面的图片。
添加一个新的条件来检查IsDamaged是否大于等于1。如果条件满足,我们将对玩家造成伤害。
然后,添加一个新的动作来伤害玩家。我们之前做过相同的操作,但这次输入**"IsDamaged."**的值。
提示
要输入变量的值,请点击输入区域旁边的数字图标。然后选择变量和场景变量的值。会弹出一个新窗口,你可以在其中选择我们的变量。
我们还需要将IsDamaged重置为0,因为这将防止我们的玩家受到额外的伤害。在前面的动作下面添加一个新动作,并将IsDamaged设置为0。
重新开始游戏
当玩家死亡时,游戏结束。添加一个新的条件来检查玩家是否死亡。然后,添加一个动作来重新开始游戏。在搜索栏中输入**"场景",并选择更改场景**。只需选择**"基础场景"**或你的场景名称。
对于这一章节,玩家的动作已经准备好了。
小敌人
我们已经让玩家变小了,但我们没有给敌人变小。请复制并粘贴相同的动作来使敌人变小,将玩家改为敌人。
这应该是事件的最终版本。
测试新的机制
在测试新机制之前,我们需要在场景中放置一些敌人。拖动一些敌人并将它们放置在横向与场景相同水平的不同位置。
现在,我们已经准备好玩我们的游戏了。我们可以射击敌人,玩家也会因为与敌人碰撞而受伤。