在一个俄罗斯方块游戏中,如果玩家业务熟练,游戏可能会持续较长的时间,其间消耗的积木数量也是极为庞大,所以不准备用资源有限的克隆体来解决问题,这里准备采用一个取巧的办法,当积木下落确定位置之后,检测该区域的颜色属性并记录在表内,然后发送一条消息,让克隆体方阵进行一次重绘。
记录数据示例 提取码: wcg6
上一节的例子当中,增加了一个小圆圈对象,我们准备由它来负责记录数据,整个过程如下:
- 圆圈对象发送消息给蓝色方块
- 蓝色方块固定位置后反馈圆圈
- 圆圈检测方阵颜色并做好记录
- 圆圈发送消息给方阵要求重绘
- 圆圈对象发送消息给蓝色方块
为了方便小圆圈对象的定位,我们新建了两张列表,分别储存每个克隆体的X、Y坐标,因为有49个克隆体,我们只需要让小圆圈执行一个重复49次的循环,依次读取坐标就能准确实现定位了。
蓝色方块确定自己的位置后需要反馈消息给小圆圈,所以在脚本停止之前我们增加了一个消息3,告诉小圆圈自己已经到达目的地,帮忙记录一下小方块我到此一游。
这次小圆圈对象承担起了更多的任务,当蓝色方块发回消息的时候,它需要以豹的速度跑过方阵的每一寸土地,记录实时的颜色变化,然后通知克隆体大部队刷新。屏幕刷新之后,蓝色方块的信息已经被记录,所以它可以离开进行下一轮的下落了。在实际的俄罗斯方块游戏过程中,除了轮询,它还负担起了判断一行是否已满并进行消除的工作。
方阵的系列课程,介绍了方块下落,色块显示,以及程序加速的部分内容。示例比较简单,所以效果也较为粗糙,在接下来的课程里,我们会利用这些知识,来亲手创建一个俄罗斯方块游戏。