在小鸟数据的Scratch亲手制作一个打字游戏这一章节中,我们曾经尝试制作一个简单的打字游戏,当时我们使用的方式是依次判断“a,b,c,d,e,f”键是否成功被按下,这样挨个检测的方式显然很没有效率,于是在尝试实现计算器的时候,在Scratch批量绑定并检测按键输入这一章节,我们利用了一个列表来尝试批量检测按键输入。在这一节,我们来尝试用字符串代替列表,以实现批量的按键检测。
关于字符串
字符串是编程中最基本的数据类型之一,它表示一系列字符的序列。简单来说,字符串就是由字母、数字、符号等字符组成的文本数据。
基本特征
字符序列:字符串是由零个或多个字符组成的序列
不可变性:在大多数编程语言中,字符串一旦创建就不能被修改(是"不可变的")
有序性:字符串中的字符保持特定的顺序,可以通过索引访问
如上图,scratch中提供了很多现成的工具来处理字符串;
什么叫可以通过索引访问呢?就是我们如果知道这个字符在几个,我们只需要提供这个字符的座位号,就可以提取到字符串中对应的字符。需要注意的是,在scratch中,第一个字符对应的索引号是“1”
,而在大部分语言中,第一个字符对应的索引号是“0”
。
游戏用到的3个角色,字符图形负责图形展示,能量条负责玩家的血量,小齿轮则负责后台的一些数据处理。
按键绑定需要用到的几个公共变量如上图。
计数器变量用于记录当前按键在字符串中的顺位,当按键与字符串中的某个值相等时,用计数器记录这个值,如果轮询一遍后没有找到对应的值,比如按下空格键或是根本没有按键,那么计数器返回的是初始值0。0顺位在scratch的字符串中是不起作用的,所以也不会有什么反馈,在本实例中,按下正确的键时,小齿轮会说出对应的键值。
关于玩家血量
血条展示这个角色是博主自行参考资料图描边绘制的,绘制过程耗费了挺长时间;
但是作为游戏的一部分,它的代码量其实少得可怜,在游戏开始后让其不断的去读取“能量”这个变量,根据变量值实时来更新当前的造型就可以了。