2 классам нужен другой класс, чтобы существовать первым. Как я могу решить эту круговую зависимость класса? - PullRequest
0 голосов
/ 18 января 2019

В моем классе GameWorld я инициализирую элемент Rectangle в конструкторе.

item1 = new Rectangle(GameRenderer.obstacle3.getX() - GameRenderer.generator2.getValue2(), GameRenderer.generator2.getValue1(), 5, 5);

У меня проблема в том, что для инициализации GameRenderer.obstacle3 a GameWorld уже должен существовать,и для создания GameWorld, GameRenderer.obstacle3 не должно быть нулевым.

Другими словами: GameRenderer.obstacle3 нужен GameWorld, чтобы существовать первым, но GameWorld нужен GameRenderer.obstacle3, чтобы существовать первым.

Вот почему я получил NullPointerException.

Я использую прямоугольник для обнаружения столкновений, т. Е.

if (Intersector.overlaps(wizard.getBoundingRectangle(), item1)) { 
                GameRenderer.DoublePointsActive = true;
                addScore(5);
}

Я не знаю, как решить эту проблему, по крайней мере, с помощью реорганизации.

1 Ответ

0 голосов
/ 18 января 2019

Я бы не стал связывать эти классы вот так. Может быть, вам следует пересмотреть свой дизайн. Почему препятствие 3 входит в GameRenderer, а не в GameWorld, например? Видно, что препятствие не подходит как элемент рендерера.

...