簡體   English   中英

2D陣列無法移動

[英]2D Array fails to shift

我正在開發街機游戲。 我有一個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開始。我認為您需要從當前坐標開始。 就像是

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()和getCurrentY()將返回開始渲染所需的基本坐標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM