敌人生成
下面,我们先来看生成敌人的代码:
生成单个敌人
使用下面的积木,在指定位置附近生成敌人:
或者,下面的参数填 1,可以在地图随机位置生成敌人(填 1 在视野外随机位置生成敌人;填 2 则可能在视野内贴脸生成敌人):
注:可以使用下面的自制积木,设置敌人随机生成时的区域范围(填“-”表示和地图边界一致)。例如,下面的代码将敌人生成区域设定为了 -60 右侧的区域:
生成多个敌人
上面的代码用于生成单个敌人。如果我们想生成多种敌人,并且不同敌人的出现概率不同,我们可以制作下面的积木:
其中,类型表填敌人种类,如“刀兵,手枪兵,步枪兵,盾兵”(注意是英文逗号)
权重表填敌人概率权重,如“15,4,1,2”(英文逗号)。权重占比越大,概率越大。
参考代码如下:(此处省略了“_得到随机结果”自制积木的内容,具体代码可以查看本课成果源码)
其中下面积木出自“四次元口袋”扩展,作用是将字符串按逗号分割,生成列表 JSON:
完成关卡 1
- 当吉普车将玩家放下后,相机开始跟随玩家。显示剧情文字:
- 放置三个敌人,让相机聚焦到敌人位置,再重新聚焦回玩家位置,同时解锁玩家输入:
注:这里使用了一个变量,记录“游戏阶段”。这里通过“游戏阶段”来控制刷兵代码,例如,游戏阶段为 1 时,开始刷新 10 个刀兵敌人。当所有敌人被击败后,进入游戏阶段 2:
- 添加下面的刷兵控制代码:
- 游戏开始时阶段设为 0。
- 当进入阶段 1,生成 10 个刀兵(2 秒生成 1 个)。
- 当玩家击败所有敌人(敌人数量< 1),将阶段设为 2。
- 回到主代码,进入阶段 2(击败第一波 10 个敌人)后,当玩家移到地图右侧x > 450,扩展地图上边界,收缩左边界;当玩家继续上移(y > 20),扩展地图左边界:
上面的代码实现了如下的边界变化效果:玩家 x > 450 时,第一次变化边界;玩家 y > 20 时,第二次变化边界。
- 添加下面代码:进入阶段3,刷新敌人;当击败所有敌人后,进入阶段 4,游戏继续:
- 击败敌人进入阶段 4 后,地图边界继续根据玩家位置扩展:
- 接着,刷新敌人生成区域,进入阶段 5,刷新最后一波敌人;击败所有敌人后,进入阶段 6:
- 最后,当玩家抵达地图右上角,提示发现敌人基地入口。玩家进入后,第一关就完成了!
上一节:01 吉普车
下一节:03 云存档
<iframe
width="100%"
height="800px"
scrolling="no"
src="https://www.ccw.site/embed?id=STG303/Arkos/Lec5/03&type=comment"
title="{射击课高级篇-第五课-03}"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
scrolling="0"
></iframe>