接下来,添加一些游戏道具。游戏道具会在击杀敌人后随机掉落,玩家捡起道具后即可使用。
添加医疗包
下面来添加第一个道具:医疗包,玩家捡起医疗包后,会恢复一定血量。
- 道具可以当成一种特殊的子弹。我们把医疗包的代码编写在子弹角色中:
- 重复执行,检测玩家在附近,且按下 E 键,就使用医疗包;
- 播放治疗音效,增加玩家血量(如果超过了血量上限,就将血量设为上限)
- 接着,设置医疗包消失时间,让医疗包等待 10 秒后,开始闪烁,然后删除自己。(这里为了方便测试,可以先设为 3 秒)
- 接着,来到敌人角色中,让敌人死亡后,有 1/3 的概率掉落医疗包。这样,我们就完成了医疗包道具,可以测试一下效果。
添加金币
下面我们来添加第二个掉落物:金币。金币会在玩家靠近时被玩家吸引,并可以被玩家捡起。
- 素材包中没有提供金币的素材。可以使用素材集市中的素材:
- 为金币添加 10 秒后消失的代码:
- 添加金币的旋转动画:
- 在敌人角色中,新建自制积木“放置掉落物”(勾选不刷新屏幕)。敌人死亡后在附近随机生成 0~5 个金币:
- 接下来,编写玩家靠近金币时的捡起功能:
- 我们还可以让玩家靠近金币时,金币被玩家吸引的效果。金币离玩家越近,吸引力越强:
- 这样,就实现了可拾捡金币的效果:
可以将添加的素材进行重命名:
这样,敌人死亡后就会爆金币:
其中这个自制积木可以从“敌人武器”中拖过来使用:
看下面的代码,当金币离玩家距离 < 100,就朝玩家移动:
其中移动速度为“10000/(距离 * 距离)”。这样,距离为 100 时,移动速度就是 1;金币离玩家越近,移动速度越快,例如距离为 50, 速度变为 4,距离为 20, 速度为 25。
获得的金币数量可以用一个变量记录,后续可以编写商店之类的机制,用于花费金币。本教程没有涉及如何编写商店,你可以尝试自己动手实现。
<iframe
width="100%"
height="800px"
scrolling="no"
src="https://www.ccw.site/embed?id=STG202/Arkos/Lec7/04&type=comment"
title="{射击7-添加道具}"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
scrolling="0"
></iframe>