一个打字游戏,一般是随机生成字母,然后自上而下掉落,从出现到字符消失的过程中,如果没有准确的命中对应按键,那么可能会扣除玩家一定的血量,等血量见底,游戏也就结束了。在随机生成字母的过程中,不可避免的会出现同一个字母同屏展示的情况,比如屏幕上同时展示了3个字母“A”,这个时候就需要区分相同字母的下落顺序,先冒头的字母优先被删除掉。
博主的字母准备用克隆体,本准备用的大一点的随机值来作为区分的ID,考虑到随机值也存在重复的可能性,按时间顺序来排列可能更好一些,所以最终决定利用克隆体的编号+SCRATCH中提供的计时器的值来组合成一个唯一的ID号。
在原有的基础上我们增加了几个变量,分别是_私有计数器
,_字符编号
,以及一个字符统计表,注意前两个都是私有变量,当字符开始掉落,我们把字符当前造型值与计时器值放入字符统计表,同时也将这个值赋值给_字符编号
这个变量。当字符掉落到底部的时候,则利用_字符编号
这个唯一ID去表中反查行号,获取行号后删除表中记录的数据,同时删除掉自身这个克隆体。
及时删除掉克隆体,是因为克隆体存在数量上的限制,一般不超过300个,而及时去清理表格中的厄余数量,则是为了在循环遍历表格时能提供更快的反馈速度。本文的范例中,为了测试表格数据的正确性,博主的下落与生成时间调整得有点紧凑,实际游戏中,则需要按需修改。