In diesem folgenden Code habe ich versucht, eine Münzklasse zu erstellen und es so zu machen, dass es ein Sprite ist. Ich habe versucht, alle diese Sprites zu einem Array hinzuzufügen und dann das Array auf den Bildschirm zu zeichnen. Es erzeugt keine Fehler, nur druckt die Grafik nicht auf dem Bildschirm. Ich wollte auch wissen, ob ich das Sprite für Kollisionen verwenden könnte. Ich weiß, dass mein Code nicht sehr gut ist, da er ziemlich unordentlich ist und ich nur versuche, eine Lösung zu finden. DankLibgdx Hinzufügen von Sprites zum Array und Zeichnen sie zum Bildschirm
public class Gold extends Sprite {
private SpriteBatch batch;
private TiledMap map;
private Sprite sprite;
private Boolean isCollected;
public Gold(TiledMap map, Rectangle bounds, Texture gold) {
this.map = map;
sprite = new Sprite(gold);
sprite.setSize(bounds.width/MarioBros.PPM, bounds.height/MarioBros.PPM);
sprite.setPosition(bounds.x/MarioBros.PPM, bounds.y/MarioBros.PPM);
isCollected = false;
}
for (MapObject object : map.getLayers().get(5).getObjects().getByType(RectangleMapObject.class)) {
Rectangle rect = ((RectangleMapObject) object).getRectangle();
for(int i = 0; i < map.getLayers().get(5).getObjects().getCount() - 1; i++){
goldArray[i] = new Gold(map, rect, gold);
}
}
public void drawGold(TiledMap map){
for(int i = 0; i < map.getLayers().get(5).getObjects().getCount() - 1; i++){
goldArray[i].draw(batch);
}
}
Im Render:
mapCreator.drawGold(map);
EDIT - handelte ich auf den ersten 2 Anregungen und jetzt gibt das Programm diesen Fehler
Exception in thread "LWJGL Application" java.lang.NullPointerException
at com.alexcz.mariobros.Tools.MapCreator.<init>(MapCreator.java:77)
auf dieser Linie goldArray[i] = new Gold(rect, gold);
Schauen Sie sich die Änderungen an. Danke –
@alexczernnenk NullPointerExceptions sind in der Regel sehr einfach zu debuggen. Siehe http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it – Tenfour04