2016-12-21 19 views
0

私はアーケードゲームを開発中です。私はタイルベースのマップを描画するために使用する2D配列を持っています。プレイヤーの移動マップ/レベルが右に移動する必要があるため、配列をシフトします。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

はい、正しい値を返します。 – emre01

答えて

2

私は問題はあなたが常に0から始まると思います。私はあなたが現在の座標から始める必要があると思います。

getCurrentX()& getCurrentYは()ベースを返します
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]; 
     } 
    } 
} 

よう 何かがあなたからレンダリングを開始する必要があることを調整します。

+0

助けてくれてありがとう。 – emre01