abler98
@abler98
Software Engineer

Почему не работает следующий код (libGDX)?

Есть следующий код
map = new Map(this);
        map.setPosition(0, 0);
        map.setLocations(locations);
        stage.addActor(map);


public void setLocations(ArrayList<Location> locations) {
        for (int i = 0; i < locations.size(); i++) {
            Location location = locations.get(i);
            LocationSelector locationSelector = new LocationSelector(this, location);
            getStage().addActor(locationSelector);
        }
    }


public class LocationSelector extends Actor {
    public LocationSelector(Map map, Location location) {
        setSize(location.WIDTH * map.ratioX, location.HEIGHT * map.ratioY);
        setPosition(location.x * map.ratioX, location.y * map.ratioY);
    }

    @Override
    public void draw(Batch batch, float parentAlpha) {
        batch.draw(Assets.location, getX(), getY(), getWidth(), getHeight());
    }
}


abstract class Location {
    public static final float WIDTH = 60;
    public static final float HEIGHT = 60;
    public float x, y;
}


В логах вижу такую ошибку
04-03 15:32:43.106  24656-24672/ru.redozote.mrr2.android E/AndroidRuntime﹕ FATAL EXCEPTION: GLThread 49532
    java.lang.NullPointerException
            at ru.redozote.mrr2.Actors.Map.setLocations(Map.java:38)
            at ru.redozote.mrr2.ChooseLocationScreen.<init>(ChooseLocationScreen.java:39)
            at ru.redozote.mrr2.Actors.PlayButton$1.clicked(PlayButton.java:29)
            at com.badlogic.gdx.scenes.scene2d.utils.ClickListener.touchUp(ClickListener.java:89)
            at com.badlogic.gdx.scenes.scene2d.InputListener.handle(InputListener.java:57)
            at com.badlogic.gdx.scenes.scene2d.Stage.touchUp(Stage.java:348)
            at com.badlogic.gdx.backends.android.AndroidInput.processEvents(AndroidInput.java:360)
            at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:420)
            at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1516)
            at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
  • Вопрос задан
  • 423 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы