💡返回主题
编写代码
接下来,我们为玩家添加血量机制:
- 玩家有 10 滴血
- 当受到敌人攻击后,玩家血量 -1;
- 当血量为 0 时,玩家死亡,设置死亡造型,游戏结束。
1. 首先,我们为玩家添加一个死亡造型:
• 进入玩家的造型页面。复制玩家造型,将新造型命名为“玩家死亡”:
• 接着,绘制角色的死亡造型:
2.接着,在左侧积木栏,点击建立一个变量。将新变量取名为“玩家血量”:
(注:“我的变量”是新建作品时,作品自带的一个例子变量,可以直接右键删除)
知识点:变量
变量,可以理解为一个“装有数据的盒子”。我们可以往里面存放数字或文字,并读取它的值。
在上面,我们创建了名为“玩家血量”的变量,来记录玩家的血量。
3.为玩家添加代码:
- 初始时血量设为10
- 当血量不大于0(即小于或等于0)时,判定为死亡,退出循环
- 死亡后,设置死亡造型,广播“玩家死亡”。
问题:为什么玩家死亡条件是“血量>0 不成立”,不能直接“血量=0”吗?
如果玩家死亡条件是“玩家血量=0”:
则可能会存在问题:例如,当玩家只剩 1 滴血时,被多个怪物同时攻击,此时玩家的血量直接从 1 变为 -1 或者更小,玩家血量<0,跳过了血量=0 的情况,从而无法离开循环。玩家就会一直“死不了”;当然,当玩家血量是整数时,也可以使用下面的写法:
而当玩家血量有可能是小数时,比如0.5,更好的写法是下面的写法:
4.为武器添加以下代码:
- 当接收到“玩家死亡”,武器停止动作(比如发射子弹),并隐藏。
- 同时,在点击绿旗后加上“显示”。(玩家死亡后,武器隐藏了,重新游戏时需要重新显示)
5.接着,为敌人添加代码:
- 当敌人播放完攻击动画后,判断如果玩家距离<50,就将玩家血量减少 1。(如果玩家在敌人攻击时跑走了,距离>50,则不扣血)
- 当接收到“玩家死亡”,停止其他脚本(包括追逐主角,攻击动作)
这样我们就实现了玩家的血量机制,效果如下:
<iframe
width="100%"
height="800px"
scrolling="no"
src="https://www.ccw.site/embed?id=STG101/Arkos/Lec3/03&type=comment"
title="{射击3-玩家的血量机制}"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
scrolling="0"
></iframe>
👉 下一节:04 敌人的血量机制
本页索引