这节课中,我们了解了 Scratch 中代码的执行顺序,解决了跟随延迟问题,并制作了图层排序,以及添加敌人血量条:
知识点回顾
本节课我们学到了以下知识点:
- 帧的概念:在 Scratch中,每次“重复执行”可以理解为一帧。每一帧的间隔(循环的间隔)约为 0.033 秒。
- FPS的概念:FPS 就是帧率,即每秒的帧数。Scratch 通常 FPS 为 30(每秒 30 次重复执行)。卡顿时 FPS 会降低,可以用 FPS 衡量卡顿情况(例如 5 FPS 就是每秒只有 5 帧)
- Scratch 中不同代码片段的执行顺序:
- 不同角色代码执行顺序:图层在上角色先执行;
- 同一角色代码执行顺序:先被创建的积木先执行;
- 广播、克隆体事件会被放到当前帧的末尾执行;
- 循环前的代码和第一次循环的代码会同一帧执行,而循环结束后的代码会放在下一帧执行。
- 使用广播解决武器跟随玩家的延迟问题。
- 可使用私有变量来区分主体和克隆体。例如仅让克隆体接受广播。
- 图层排序:根据角色的 y 坐标确定角色的前移图层。y 越小,图层越靠前。通过列表存放各角色的 y,查找列表来确定自己的图层位置。
- 添加血量条:根据血量百分比设置血条造型。
了解了代码间的执行顺序,可以解释很多疑难 bug 产生的原因。通常使用“等待 0 秒”来调整代码间执行的顺序
本课练习
- 跟随教程,实现图层排序,以及血量条机制。完成后可将你的作品发布在“跟着 Arkos 制作射击游戏”星球上。
第六课作品源码
如果你在教程中遇到了什么问题,可以参考下面的第六课作品源码:
下节预告
下节课,我们将介绍,给玩家添加更多种类的武器(如手枪、刀、火箭筒),以及添加一些道具:
欢迎在这里提交你的新版教程体验反馈!
<iframe
width="100%"
height="800px"
scrolling="no"
src="https://www.ccw.site/embed?id=STG202/Arkos/Lec6/04&type=comment"
title="{射击6-小结}"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
scrolling="0"
></iframe>