下面我们来添加一个好玩的武器:火箭筒
添加火箭筒
- 首先,为火箭筒添加定义:
- 由于火箭筒使用的子弹比较特殊,需要新建一个新私有变量“武器子弹”,记录当前武器发射的子弹类型。
- 其他武器默认为“普通子弹”,火箭筒子弹则为“火箭”
- 然后,发射子弹时,根据变量确定发射哪种子弹:
- 接着,加上切换火箭筒的代码:
这样,按 5 可以切换到火箭筒:
添加火箭
- 在子弹角色中,将“普通子弹”的代码复制一份,放到下面,作为“火箭”的代码:
- 火箭代码如下:开始时设置大小、造型;火箭击中东西时,播放爆炸音效和爆炸动画。
- 接下来,我们编写火箭筒的爆炸判定:火箭筒爆炸时,伤害一定半径内的所有敌人。新建如下自制积木(记得勾选不刷新屏幕)。检查所有存活敌人,并计算距离,如果距离 < 半径,则扣除敌人血量:
- 我们可以给爆炸添加伤害衰减:离爆炸中心越远,伤害越低。
- 爆炸伤害随着距离增大而线性衰减,中心伤害最大,边缘伤害最小;
- 伤害和距离的衰减关系如下所示:
写成代码即:(可以通过解过两点的一次函数来求出类似下面的式子)
屏幕震动效果
接下来,我们添加火箭爆炸时的屏幕震动效果。
- 在火箭爆炸后,广播“屏幕震动”
- 在摄像机角色中,添加接收广播的代码:震动时,摄像头上下晃动。
添加尾烟
下面我们来为火箭添加尾烟:
尾烟可以作为一种特殊的“子弹”,因此相关的代码可以写在子弹角色中。
- 首先,在子弹角色中,编写尾烟代码:尾烟产生后,会慢慢放大,右旋,并逐渐消散。
- 接下来,创建一个新的“作为克隆体启动”,编写火箭放置“尾烟”克隆体的代码:
- 新建私有变量“子弹炸?”,记录火箭是否爆炸,炸了就设为 1。火箭爆炸后,不再放置尾烟;
- 火箭每隔一帧,在自己的位置放置一个“尾烟”克隆体;
- 生成子弹的自制积木可以从“敌人武器”中拖过来使用。
- 接着,火箭爆炸后,将“子弹炸?”设为 1。这样爆炸后就不再放置尾烟:
完成!
<iframe
width="100%"
height="800px"
scrolling="no"
src="https://www.ccw.site/embed?id=STG202/Arkos/Lec7/02&type=comment"
title="{射击7-添加火箭筒}"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
scrolling="0"
></iframe>