
上QQ阅读APP看书,第一时间看更新
3.1.3 生成方块阵列
接下来创建所有的方块角色,并通过列表统一进行管理。这样的操作是不是感觉很熟悉呢?没错,在拼图游戏中也是这样做的。
之前ROWS和COLS常量的值都设为15,表明场景是由15×15个方块所形成的阵列,于是可以通过双重循环语句来自动创建方块角色。代码如下所示:

上述代码首先创建了方块列表blocks,然后使用双重循环逐行逐列地创建方块角色,接着设置每个方块的坐标,并将其加入列表中。由于所有方块在初始时都还没有打开,因此所有的方块角色都是通过minesweep_block.png图片文件来创建的。在双重循环语句中,变量i表示方块阵列的行号,j表示列号,于是各方块的left属性值可由j与SIZE相乘得到,而top属性值可由i与SIZE相乘得到。还记得拼图游戏中的类似操作吗?我们为各个图片块设置坐标时也是这样做的。
为方块设置好坐标后便可以将它们显示出来,为此在draw()函数中编写如下代码:

上述代码使用一个遍历循环,逐一地获取列表中的各个方块角色,并调用其draw()方法进行显示。效果如图3.2所示。

图3.2 在窗中显示方块阵列