public class BlockShapeI extends Block {
public int shape[][][] = {
{ { 1, 1, 1, 1 }, { 0, 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, 0, 0, 0 }, { 1, 1, 1, 1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
{ { 0, 1, 0, 0 }, { 0, 1, 0, 0 }, { 0, 1, 0, 0 }, { 0, 1, 0, 0 } }, };
}
//这是方块子类继承一个Block父类,一共七中类型的方块
方块落到底的时候怎样把它的信息保存到地图数组里,然后再生成新的方块
再判断消行?
开始游戏地图全是0
public void initMap()// 初始化这个地图
{
for (int i = 0; i < mapRow; i++) {
for (int j = 0; j < mapCol; j++) {
map[i][j] = 0;
}
}
}
//这是我写的一个保存的方法,但是一执行就报下标越界
public void add(int row ,int col,int dir) {
System.out.println("执行了");
for (int i = 0; i < 4; i++) {
for (int j = 0; j <4; j++) {
if (shape()[dir][i][j] == 1) {
map()[col+i][row + j] = 1;
}
}
}
}
//这个add方法我是写在方块下落的方法里,当判断方块到底就执行它
传入的坐标是方块到底的坐标
希望大佬有空帮我看一哈,万分感谢!
add你是怎么调用的。也就是说,col row传入的是多少