我正在开发一款街机游戏。我有一个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];
}
}
}
为什么我失败了?感谢。
答案 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()将返回开始渲染所需的基本坐标。