2D阵列无法移动

时间:2016-12-21 20:13:39

标签: java arrays multidimensional-array

我正在开发一款街机游戏。我有一个2D数组,我用它来绘制基于图块的地图。我移动阵列是因为当玩家移动地图/等级时应该向右移动。

为此,我将整个地图的一部分复制到屏幕上的当前地图并更新部分。

此代码仅在第一次运行时正确运行,然后在调用时无效。

public void shiftMap(){
    //tMap is the tile map
    for(int i = 0; i < tMap.getCurrentRows(); i++){
        for (int j = 0; j < tMap.getCurrentCols(); j++) {
        //getMap returns the whole map and getCurrentMap returns the portion
            tMap.getCurrentMap()[i][j] = tMap.getMap()[i][j+1];
        }
    }
}

为什么我失败了?感谢。

1 个答案:

答案 0 :(得分:2)

我认为你的问题是你总是从0开始。我认为你需要从当前的坐标开始。 像

这样的东西
public void shiftMap(){
    for(int i = tMap.getCurrentX(); i < tMap.getCurrentRows(); i++){
        for (int j = tMap.getCurrentY(); j < tMap.getCurrentCols(); j++) {
            tMap.getCurrentMap()[i][j] = tMap.getMap()[i][j+1];
        }
    }
}

getCurrentX()&amp; getCurrentY()将返回开始渲染所需的基本坐标。