2个类需要另一个类首先存在。如何解决这种循环类依赖?

在我的GameWorld类中,我在构造函数中初始化了一个项目Rectangle。


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

我遇到的问题是初始化GameRenderer.obstacle3aGameWorld必须已经存在,并创建 a GameWorld,GameRenderer.obstacle3不能为空。


换句话说:GameRenderer.obstacle3需要GameWorld首先存在,但GameWorld需要GameRenderer.obstacle3首先存在。


这就是为什么我得到一个NullPointerException.


我使用矩形进行碰撞检测,即


if (Intersector.overlaps(wizard.getBoundingRectangle(), item1)) { 

                GameRenderer.DoublePointsActive = true;

                addScore(5);

}

我不知道如何至少通过重组来解决这个问题。


猛跑小猪
浏览 108回答 1
1回答

芜湖不芜

我会避免像这样耦合这些类。也许你应该重新考虑你的设计。例如,为什么障碍物 3 是 GameRenderer 的成员而不是 GameWorld 的成员?障碍物不适合作为渲染器的成员。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java