[英]Java 2D array - How to assign an array as a value?
背景
我正在為Java類做一個游戲項目,並且在游戲區域使用了網格系統。 50寬乘25高。 正方形是根據您的顯示器大小動態調整大小的,其中涉及一些數學運算。 我從下面的示例中刪除了它,因此更易於查看。
我目前決定要做的是將網格正方形存儲在一個漂亮且簡單的2D數組中,以便我們可以根據需要訪問和更新游戲區域。 這是該代碼:
// Updates when told to, saves new values
public static void GridList() {
// Record which grid squares are open (0) or blocked (1)
// X = Row and Y = Column
for (int x = 0; x < 50; x++ ) {
for ( int y = 0; y < 25; y++ ) {
gridList[x][y] = 0;
}
}
}
我們的問題
現在,當我繼續保存代表這些網格正方形中間的訂單對(x,y)時,麻煩就開始了。 例如,基於所有用於計算顯示器尺寸的數學運算,我們制作了一個寬50 x高25的網格,現在需要保存這些正方形中間的(x,y)坐標。 這樣我們的AI知道了將敵人移至何處。 只要打開一點一點。
到目前為止,這是我將X坐標和Y坐標保存在它們自己的數組中的功能:
public static void NodeList() {
for (int x = 0; x < 50; x++ ) {
for ( int y = 0; y < 25; y++ ) {
nodeListX[x][y] = *Removed all the math.*;
nodeListY[x][y] = *Removed all the math.*;
}
}
}
我們想要擁有的
我真正想做的是為每個網格正方形保存一個數組,如下所示:
public static void NodeList() {
for (int x = 0; x < 50; x++ ) {
for ( int y = 0; y < 25; y++ ) {
nodeList[x][y] = *array{x,y}*;
}
}
}
這在Java中可行嗎? 我不知道這個。 我看到了有關列表的內容,但我們還沒有涵蓋,所以我很茫然。
Java確實沒有存儲一對數字的方法。 但是您可以創建一個坐標類,如下所示:
`public class Coordinate
int x;
int y;
public Coordinate(x,y)
{
this.x=x;
this.y=y;
}
public int getX()
{
return x;
}
public int gety()
{
return y;
}
`
然后,您可以只創建一個坐標數組。
老實說,我看不到您或fdsa解決方案的問題。 但是,如果您正在尋找另一種方法,則始終可以使用3維數組,第3維數組包含X和Y的2個元素:
public static void NodeList() {
for (int x = 0; x < 50; x++ ) {
for ( int y = 0; y < 25; y++ ) {
int xPos = *Removed all the math.*;
int yPos = *Removed all the math.*;
nodeList[x][y] = new int[] {xPos, yPos};
}
}
}
只需確保將nodeList
聲明為int[][][]
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.