在本课程中,您将学习在 ACTION GAME MAKER 中进行基本脚本制作的方法。
第三回将制作剑的攻击动作。
开始课程前的准备工作
我们将继续使用第一回和第二回中使用的工程文件。
现在请打开工程文件,做好准备。
步骤1:添加剑。
- 请打开 Object_Sampleplayer。
- 由于当前持有枪支,请先将其隐藏。点击 W005 Gun 的
图标以隐藏它。
- 取而代之地添加一把剑。查看文件系统。与枪支一样,在 templates>objects>weapons>P_other 中有一些剑的素材。
- 将任意一把剑作为 B_Weapon 的子对象放置。这里我们使用 W_001_sword.png。
- 角度不太对,需要调整属性。将 x 设为 17,y 设为 -16,旋转 (Rotation) 设为 48 左右应该比较合适。
- 在 AnimationPlayer 中确认动作。尝试播放 033_Swing。如果感觉不自然,请在 W001Sword 的属性中进行微调。
- 为剑添加攻击判定。该对象已设置了 AttackArea,但它位于脚部,因此需要移动它。将 AttackArea2D 设为 B_Weapon 的子对象。
- 调整 AttackArea2D 的位置。将其移动到与剑匹配的位置。将 x 设为 13,y 设为 -11,旋转 (Rotation) 设为 -42 左右应该比较合适。
- 调整 AttackCollision 的大小和位置。由于 Position 和 Rotation 偏移了,请将其重置为 0。另外,攻击范围看起来有点窄,因此请稍微调整碰撞形状使其变长。此时,x 坐标会根据碰撞形状自动调整。
- 再次播放 Swing 动画。攻击范围应该会随剑一起移动。
说明
使用 Sprite 角色的攻击范围
对于使用精灵表(Sprite Sheet)的角色,建议根据动画变化攻击范围的位置和大小。
展开 CollisionShape2D 的 Shape 属性后,会显示用于修改形状大小的输入界面。通过将该界面作为关键帧插入,即可在动画中更改碰撞的大小。
步骤 3:改进视觉脚本
- 选择 Idle 状态,添加三个动作。第一个是“更改对象属性”(ChangeObjectProperty)。设置您自身节点的属性,将 W005Gun 的 Visible 设为关闭。
- 第二个也是“更改对象属性”(ChangeObjectProperty)。设置您自身节点的属性,将 W001Sword 的 Visible 设为关闭。
- 第三个同样是“更改对象属性”(ChangeObjectProperty)。设置您自身节点的属性,将 AttackCollision 的 Disabled 设为开启。
- 请进行测试运行。此时剑和枪应已消失,即使撞向僵尸,僵尸也不会受到伤害。但由于它们现在保持消失状态,接下来我们将启用显示。
- 在 Sword 状态中执行与上述相反的操作。添加两个动作。使用“更改对象属性”(ChangeObjectProperty),设置您自身节点的属性,将 W001Sword 的 Visible 设为开启。
- 使用“更改对象属性”(ChangeObjectProperty),设置您自身节点的属性,将 AttackCollision 的 Disabled 设为关闭。
- 请进行测试运行。如果设置正确,剑应仅在剑攻击期间显示。
- 接下来是枪。在 Shoot 状态中添加一个动作,同样使用“更改对象属性”(ChangeObjectProperty),设置您自身节点的属性,将 W005Gun 的 Visible 设为开启。
- 请进行测试运行。此时枪应仅在射击时显示。
提示
使用动画切换属性
在本课程中,我们使用“更改对象属性”动作来切换各个精灵的显示/隐藏状态,但此操作也可以通过 Animation 完成。
虽然可以将属性设置为关键帧,但请注意:只有在动画播放到该位置时才会执行切换。如果中途切换动画,可能导致显示/隐藏切换失败。
实际上,在 026_Crouch 等部分动画中,已使用动画来切换表情多边形。
关于 AnimationPlayer 的使用方法,请参考图形课程。
第四期请点击此处