接下来,为敌人添加子弹。
编写敌人子弹代码
我们会在子弹角色中编写敌人子弹的代码(玩家、敌人子弹共用一个角色):
由于敌人武器克隆子弹时,需要告知子弹克隆体的生成位置、方向等信息。因此我们采取和敌人武器同样的做法,通过列表来保存子弹生成请求。
- 首先,在子弹角色中编写下面的代码(可以从敌人武器中拖过来修改)。(新建私有变量“子弹名”,保存子弹名称)
- 这样,我们就可以像下面这样,通过往列表加入内容,来生成子弹:
- 可以再添加两个属性:子弹伤害、子弹阵营(玩家发射,阵营为“玩家”,敌人发射,阵营为“敌”)
- 将子弹代码修改如下:根据子弹名来执行不同的代码(之后可以加不同类型的子弹);添加子弹伤害。
- 将子弹的击中判定代码修改如下:
- 玩家子弹(阵营为“玩家”)执行之前的代码;
- 敌人子弹(阵营为“敌”)判断是否击中玩家,击中了则将“击中敌人编号”设为“玩家”
这样,玩家的子弹会检测是否击中玩家,而敌人的子弹会检测是否击中敌人。
- 修改下面代码,当子弹击中玩家,扣除玩家血量,否则扣除敌人血量:
这样,我们就在一个子弹角色中,完成了玩家、敌人子弹。
编写敌人发射子弹代码
- 回到敌人武器中,编写如下的自制积木,用于敌人发射子弹:
- 然后,我们就可以完成上节课遗留的武器发射子弹动作
现在,敌人可以发射子弹了!
编写玩家发射子弹代码
之前我们直接让子弹移到玩家武器,并面向玩家武器方向。现在由于敌人和玩家子弹共用了一套代码,玩家发射子弹的代码需要修改:
- 右侧代码可从敌人武器中拖过来。
- 将阵营改成玩家。玩家子弹伤害可以改高点(玩家光环)。
<iframe
width="100%"
height="800px"
scrolling="no"
src="https://www.ccw.site/embed?id=STG202/Arkos/Lec5/03&type=comment"
title="{射击5-远程敌人}"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
scrolling="0"
></iframe>