Diskuze: Struktura pro 2D mapu
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Na tohle si uděláš normálně třídy. Není potřeba tam řešit, aby to bylo úsporně uložené, ty struktury mají pár bajtů. Co se potom řeší je třeba kolize pomocí Octree a podobné optimalizace, ale určitě ne velikost typu toho políčka.
díky, jen si nevím rady, jak navázat konkrétní bloky na mapě na definice těch základních bloků
Trochu jsem si upravil terminologii
a vyšel mi z toho následující kód:
public enum TypBloku {
HLINA(2, 1),
ZED(10, 2),
TRAVA(3, 3);
private final int tvrdost;
private final int textura;
private TypBloku(int tvrdost, int textura) {
this.tvrdost = tvrdost;
this.textura = textura;
}
public int getTvrdost() {
return tvrdost;
}
public int getTextura() {
return textura;
}
}
public class Blok {
private final TypBloku typ;
private float procentoZniceni;
public Blok(TypBloku typ, float procentoZniceni) {
this.typ = typ;
this.procentoZniceni = procentoZniceni;
}
public float getProcentoZniceni() {
return procentoZniceni;
}
public void setProcentoZniceni(float procentoZniceni) {
this.procentoZniceni = procentoZniceni;
}
public TypBloku getTyp() {
return typ;
}
}
public class Mapa {
private final int sirka;
private final int vyska;
private final Blok[] bloky;
public Mapa(int sirka, int vyska) {
this.sirka = sirka;
this.vyska = vyska;
this.bloky = new Blok[sirka * vyska];
}
public int getSirka() {
return sirka;
}
public int getVyska() {
return vyska;
}
public Blok getBlok(int x, int y) {
int index = getIndex(x, y);
return this.bloky[index];
}
private int getIndex(int x, int y) {
return y * sirka + x;
}
}
Super, mockrát děkuji pořád jsem na to šel nějak špatně a měl jsem to zbytečně překombinované
Zobrazeno 5 zpráv z 5.