小结
在这节课中,我们学习了部分 Gandi 高级功能,包括:
- 全局积木、返回值积木的使用方法;
- 多莉扩展的使用;
- 临时容器的用法,键值对、JSON 的概念和用法。
最终,我们完成了一个简单的克隆体交互引擎:
- 可以读取某个 ID 的克隆体的数据;
- 可以设置克隆体的初始数据,以及指定克隆体的 ID。
(注:积木前的 emoji 表情是我手动输入的,可以用来直观区分不同功能的积木。使用win + . 可以输入 emoji)
知识点回顾
本节课我们学到了以下知识点:
- 全局积木:顾名思义,即所有角色共用的自制积木。只能在“模块”中创建全局积木;
- 返回值积木:区别于普通方形自制积木,圆形的返回值积木可以返回一个数值;
- 多莉扩展:
- 克隆体的 id:用来代表一个克隆体。通常是一串乱码一样的字符串;
- 克隆体信息的获取:可以通过 id 读取对应克隆体的数据;
- 使用多莉可以预先设置克隆体的信息。
- 临时容器:
- 容器(类似 python 的字典):一种区别于变量、列表的新数据结构,通过数据的名字来获取对应的数据;
- 键值对:通过形如 key = value 的形式来表示数据。容器、多莉扩展实际上都是键值对。
- JSON:一种将数据写成字符串形式的表示方法。例如:
- 列表 JSON:用 [...] 表示,如 [1,2,"苹果"],表示列表有三项:1、2、苹果
- 容器 JSON:用 {...} 表示,如 {"苹果":5,"香蕉":10,"窝窝头":"嘿嘿"},表示容器有三项,其中苹果的值为 5,香蕉的值为 10,窝窝头的值为嘿嘿。
- 可以将 JSON 解析覆盖到列表、容器中,也可以将列表、容器转换成 JSON 字符串格式。
(注:JSON 中,字符串需要用双引号括起来)
本课练习
- 尝试为本课制作的“克隆体交互引擎”,继续添加如下积木:
(其中,判断某克隆体存在的积木,如果克隆体存在则返回 1,否则返回 0)
参考答案:
- 可以先创建一个积木,用于获取 ID 克隆体的真 id:
- 检测克隆体是否存在:克隆体不存在时,得到 id 为空,返回 true,1 - true 返回 0;反之克隆体存在时,返回 1
- 删除某克隆体:记得删除角色在容器“ID对应id”里的内容
- 计算两个克隆体的距离:
注:不能替换成下面的写法。因为克隆体的数据“x”还没有设置。除非让克隆体每一帧将数据“x”设置为自己的 x 坐标。
跟随教程,完成以上练习,将你的作品发布在“和Arkos制作闯关射击游戏”星球中,参与射击游戏投稿活动!~
下节预告
在下一节课中,我们将应用本课学习的知识,对中级篇的引擎进行改造,使其更加完善、易用。包括:
- 将不同角色中,相同的自制积木做成全局积木;
- 使用返回值自制积木、扩展来简化代码;
- 用多莉扩展,替代原来的通过列表交互,使克隆体交互更加方便。
下一课:引擎改造
<iframe
width="100%"
height="800px"
scrolling="no"
src="https://www.ccw.site/embed?id=STG303/Arkos/Lec1/04&type=comment"
title="{射击课高级篇-第一课-04}"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
scrolling="0"
></iframe>