塔防P4 特效和炮塔布置判断
塔防游戏 第四集
本集主要实现了敌人的死亡特效,炮塔的开火特效,和炮塔尝试在道路和其他炮塔上布置的限制效果。
敌人的死亡特效
给敌人新添加一个造型,死亡后的爆炸效果。让敌人在被判定死亡后有一个爆炸特效,然后再消失。在原本判断死亡之后加上一个切换爆炸造型并等待短时间的代码即可。

这里有视频中没提到的两点。视频中把爆炸判断直接写在了清除敌人编号和删除克隆体之间,这样会导致碰到地图边缘的敌人也会有爆炸特效。所以我写了个判断,只让被炮台杀死的敌人产生特效。另外切换爆炸造型之后有时会切换回正常的行进造型,是移动部分切换造型的代码没有执行完导致的。在切换爆炸动画之前停止其他脚本可以解决这个问题。
炮塔的开火特效
和敌人的死亡特效类似,绘制一个炮塔开火的动画,在炮塔开火后切换。

原视频里没有在攻击之后把是否攻击变量修改为no,会导致炮塔在开火后射程内没有敌人时依然会播放动画。在开火后把变量修改即可。
炮台的部署限制
我们不希望炮台可以部署在敌人行进的道路上,也不希望炮塔可以重叠布置。
首先处理炮台在道路上的重叠问题,我们把背景中的道路剪切出来为一个新的角色,让炮塔在触碰到角色时无法布置即可。绘制后道路的图层太高,遮挡住了敌人和炮台,把道路移到最后方即可。

给炮塔绘制一个红色的剪影来警告此处无法布置。建立一个私有变量能否放置炮台,初始化炮台时赋值为yes,若炮台在跟随鼠标移动中碰到道路,则赋值为no。放置炮台时的判断加上队能否放置炮台的检测,检测为yes才可以放置。


不能在炮台上重复放置的限制,我们用新建一个碰撞检测角色来解决。当布置炮台之后,在炮台的位置加一个不可见的方块用来做碰撞检测。

当之后的炮台与碰撞检测的方块碰撞后,就限制新炮台放置。

在碰撞处理处的代码,我添加了一个私有变量判断本体来使广播操控克隆体时不影响本体。本体开局隐藏起来,克隆体随着炮塔一起生成,在炮台布置后隐藏在炮台处。使用一个私有变量鼠标操作,来判断合适放下碰撞检测克隆体。我们同样用虚化100来使方块在屏幕上不可见。

这里测试发现,从克隆第二个炮塔开始,碰撞检测的方块不会随着鼠标移动而是会放在原地。这里需要删除炮塔处的等待鼠标抬起的代码。代码原本在下图的位置。

总结
本集课程完成了敌人和炮台的特效,以及炮台的布置限制,让游戏变得更加生动和合理。虽然难度比之前的逻辑算法要容易一些,但是对游戏体验的影响同样是很大的。影响游戏好不好玩的因素不仅有算法,还有动画,UI设计,数值设计等等诸多因素。

浙公网安备 33010602011771号