Hallo liebe Community,
ich möchte ein 2 Dimensionales Array erstellen mit, zum größtenteils, identischen Objekten als Inhalt.
Allerdings ist das bei einer Größe von 10000x10000 nicht perform.
In C++ hätte ich mit Referenzen oder Pointern gearbeitet, um zu sagen ->dortIstEinObjekt.
Wie kann man das in Java umsetzen?
ich möchte ein 2 Dimensionales Array erstellen mit, zum größtenteils, identischen Objekten als Inhalt.
Allerdings ist das bei einer Größe von 10000x10000 nicht perform.
In C++ hätte ich mit Referenzen oder Pointern gearbeitet, um zu sagen ->dortIstEinObjekt.
Wie kann man das in Java umsetzen?
Code:
//Füllt die Objekt-Matrix mit Objekten
public void createLevel() throws IOException {
List<List<X0000_Default>> mapMatrixBlockObject_temp;
mapMatrixBlockObject_temp = getMapMatrixBlockObject();
//Läuft die Matrix durch in der doppelt verketteten for-Schleife
for (int y = 0; y < getMapBlockSizeY(); y++) {
for (int x = 0; x < getMapBlockSizeX(); x++) {
//Fragt ab um welchen Block es sich handelt (0) = Luft, (1) = Dirt etc..
switch (mapMatrix.get(y).get(x)) {
case 0:
X0000_Default x0000 = new X0000_Default(); //Instanziert benötigte Objekte
x0000.getSprite().setPosition(x*bSizeX,y*bSizeY);
mapMatrixBlockObject_temp.get(y).set(x,x0000);
break;
case 1: //Dirt-Block
X0001_Dirt x0001 = new X0001_Dirt(); //Instanziert benötigte Objekte
x0001.getSprite().setPosition(x*bSizeX,y*bSizeY); //setzt eine Position für das Objekt
mapMatrixBlockObject_temp.get(y).set(x,x0001); //Fügt dieses Objekt in die Matrix
break;
case 2: //Stone-Block
X0002_Stone x0002 = new X0002_Stone(); //Instanziert benötigte Objekte
x0002.getSprite().setPosition(x*bSizeX,y*bSizeY);
mapMatrixBlockObject_temp.get(y).set(x,x0002);
break;
default:
break;
}
}
}
setMapMatrixBlockObject(mapMatrixBlockObject_temp);
}