开始之前,先来解决一个前面教程遗留的 bug。 你可能发现了,在大部分角色中,使用“显示”、“隐藏”积木没有效果,角色总是处于显示状态。 例如,玩家的武器就有这个 bug,当玩家死亡后,武器并没有隐藏:
这是因为,这些角色每一帧都会运行“移到正确位置”,不停地设置自己显示或隐藏,这会覆盖其他代码中设置的显示或隐藏。从而导致玩家武器在玩家死亡后没能隐藏:
要解决这个 bug,需要给这些角色新建私有变量“显示?”,然后将下图的代码进行修改:
之后如果想显示或隐藏角色,不再使用原来的积木,而是通过设置这个变量来控制显示或隐藏。 例如将武器角色中,玩家死亡后的隐藏,改为设置变量为 0:
滚轮切换武器
通过数字键切换武器,不是特别方便。下面改成滚轮切换武器。
- 新建列表“玩家背包”,存放玩家拥有的武器。可以在开始的时候将加入列表:
- 新建全局变量:“背包当前武器编号”,存放玩家当前手持武器的编号。开始时设为1,并切换为第一个武器武器。
- 接着,编写下面的代码,使用鼠标滚轮,来切换上一把或下一把武器。
- 可以新建自制积木“检测数字键切换武器”(勾选不刷新屏幕),用于检测按下数字 n 键时,换为第 n 把武器。
- 这样,就完成了使用滚轮或数字键都可以切换武器。同时引入了玩家武器背包,可以通过修改背包的内容,来更改玩家可以使用的武器。
提示:“当按下↑/↓”头积木除了来检测普通的 ↑/↓ 键,也可以侦测滚轮的上下滚动
但是,上面的写法没有考虑编号越界的问题。当编号减少到 0,需要将编号设为列表长度;当编号增加到超过列表长度,需要将编号再设置为 1。
为了防止同一把武器重复设置,可以在下面自制积木中,添加如下的限制条件(只有当前武器和要切换的武器不一样时,才切换武器)
<iframe
width="100%"
height="800px"
scrolling="no"
src="https://www.ccw.site/embed?id=STG202/Arkos/Lec7/03&type=comment"
title="{射击7-滚轮切换武器}"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
scrolling="0"
></iframe>
本页索引