终于...
经历千辛万苦,你终于走到了这一步,将这个繁冗的教程看完了!一个支持滚动地图、碰撞箱、持枪人机、友军、血条、图层排序的射击游戏引擎终于被手把手地制作完成! 虽然这个教程名为“中级教程”,但其中已经将制作一个滚动地图射击游戏中最困难,也最重要的部分介绍完毕了。如果你掌握了这个教程的内容,你已经跨过了滚动地图射击游戏中最大的若干技术门槛,可以说你已经有能力自己实现《逃离物理卷》那样的效果了! 当然,要制作一个完整射击游戏还会涉及到很多细节,教程中没有一一介绍,例如添加得分、添加武器准星,添加更多道具、添加过关条件等等。在这个引擎的基础之上,你可以添加更多自己的想法。
课程总结
在中级篇中,我们学习了许多 Scratch 进阶技巧,包括:
- 实现可移动视野的滚动大地图;
- 制作地图碰撞箱;
- 实现大地图中的敌人,并制作了阵营系统;
- 实现了滚动地图中的子弹,以及子弹的击中判定;
- 通过列表实现克隆体交互,为每个敌人添加血量条;
- 实现图层排序,了解了 Scratch 中不同代码片段的先后执行顺序。
- 学习了许多数学知识的应用,包括三角函数、反三角函数、绝对值、勾股定理等。
课程预告
当前教程是射击游戏教程中级篇,之后还会继续更新高级篇的内容。
事实上,最难、最重要的内容已经在中级篇介绍完了。高级篇会介绍更多相对简单的细节内容,但需要在中级篇的基础上继续。高级篇将会介绍:
- 制作简单的开始菜单、选关页面;
- 制作关卡;
- 制作商店;
- 制作 BOSS。
拓展练习
学习完本教程,相信你可以举一反三,尝试自己动手制作下面的内容:
- 尝试添加跟随鼠标的武器准星,并添加准星的命中造型,当玩家击中敌人时,准星切换为命中造型并持续 0.2 秒,然后切换为原造型。
- 首先,产生子弹时,记录子弹发射者编号。
- 子弹击中敌人后,如果发射者编号 = 1(即玩家的子弹),就广播“玩家击中”,准星接收到广播后切换造型。
- 尝试添加道具或武器:跟踪导弹,发射会自动锁定最近敌人。
- 添加击杀敌人,掉落武器的功能,武器拾起后添加到玩家背包。
- 某些特殊的地形,允许子弹通过而玩家不能通过(例如河流),可以尝试添加子弹专用地图碰撞箱,或者建立只有人物不能通过的移动禁区来解决这个问题。
- 添加更多种类的武器,例如霰弹枪(一次发射若干子弹)。
- 试试添加特殊的“人物”,如固定在地上的自动炮台,自动攻击进入范围内的敌人。
提示:如何判断玩家发射的子弹击中敌人:
拓展阅读
- Scratch 常用数学公式(by simple):https://learn.ccw.site/article/d9353190-e140-4714-9286-db228a3451eb
- Scratch 矢量编辑器技巧&快捷键(by simple):https://gitblock.cn/Projects/931945
- 克隆体数据交互案例(by simple):https://gitblock.cn/Projects/777715
- Scratch 创作参考手册(by -6)。介绍了 Scratch 中各种常见疑难问题,以及各种特性。
- Scratch创作参考手册(0-2):https://learn.ccw.site/post/399b9480-ca8a-4dd8-8daa-e285aabbd2d6
- Scratch创作参考手册(3-5):https://www.ccw.site/post/cc2590e6-99d1-48d1-8f6c-fde7b27ce07d
- Scratch创作参考手册(6):https://www.ccw.site/post/1361d877-2fa3-42c3-b9d0-f7ed9fca0e82
- Scratch创作参考手册(附录):https://www.ccw.site/post/510a0dde-3296-4b0d-b386-1df78da59b0b
- 克隆体数据交互(by CommandSR):https://learn.ccw.site/post/bf055806-24d8-4305-b013-5c6752eb61ff
- 中级篇主要介绍在原版 Scratch 中的实现方法,很多做法相对比较麻烦。如果不考虑和原版的兼容性,使用 Gandi 编辑器的功能,可以极大简化代码。例如自定义返回值积木、全局积木、相机拓展、多莉拓展等。
- 大部分拓展的教程可以在扩展库的右侧看到:
- 或者在这个页面也能找到各种拓展的文档:https://dev.ccw.site/extensions
- 如何你还有什么想要学习的内容,也可以直接在创作者学院搜索。
介绍了很多常用的数学知识,如三角函数用法,如何旋转坐标系等等 (如图,直接阅读右侧简介部分)
介绍了矢量编辑器的许多你可能不知道的使用技巧(例如 alt 中心缩放,shift 对齐等),强烈推荐阅读。
一个滚动地图射击游戏的例子,实现了子弹击中判定、人物碰撞箱、血量显示效果,以及自动瞄准最近敌人射击(按 Z),可以作为参考。
介绍了克隆体间如何读取、修改数据。
<iframe
width="100%"
height="800px"
scrolling="no"
src="https://www.ccw.site/embed?id=STG202/Arkos/Lec10/00&type=comment"
title="{射击中级-10-00-拓展阅读}"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
scrolling="0"
></iframe>