日期:2014-05-17 浏览次数:20958 次
?
第一、算法的优化:
? ? 在Demo中,基本上都是用循环来完成向下、向左、向右的移动、检查是否存在可以得分的行等动作。在这些循环中我们使用了从0到最大值的循环。在检测是否满行和绘制背景的时候,之前采用了历边所有的背景数组。将遍历条件设为缩小到俄罗斯方块完成落下的最小高度,可以缩小循环的范围。从而提高执行效率。?
故声明一个全局变量private int lowY = 19; //初始化的时候为到最下面一行。初始背景无任何砖块?
第二、补全砖块类型:
? ? 俄罗斯方块一共有7种砖块类型,上篇博文鄙人只定义了四种类型,现在将其补齐
可能看过上一篇博文的童鞋可能不太懂这个怎么弄的,其实这个容易理解,把是1的连起来就知道是什么图形了。哈哈,简单吧。。。
?/// <summary> /// 定义砖块int[i,j,y,x] /// 4种类型方块,每种方块的4种方位,4*4的位置矩阵 /// tricks:i为块砖类型,j为状态,x为行,y为列 /// </summary> private int[, , ,] tricks = {{ { {1,0,0,0}, {1,0,0,0}, {1,0,0,0}, {1,0,0,0} }, { {1,1,1,1}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} }, { {1,0,0,0}, {1,0,0,0}, {1,0,0,0}, {1,0,0,0} }, { {1,1,1,1}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} } }, { { {1,1,0,0}, {1,1,0,0}, {0,0,0,0}, {0,0,0,0} }, { {1,1,0,0}, {1,1,0,0}, {0,0,0,0}, {0,0,0,0} }, { {1,1,0,0}, {1,1,0,0}, {0,0,0,0}, {0,0,0,0} }, { {1,1,0,0},