为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

猛跑小猪 2022-05-12 16:18:09
在我的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);}我不知道如何至少通过重组来解决这个问题。
查看完整描述

1 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

我会避免像这样耦合这些类。也许你应该重新考虑你的设计。例如,为什么障碍物 3 是 GameRenderer 的成员而不是 GameWorld 的成员?障碍物不适合作为渲染器的成员。



查看完整回答
反对 回复 2022-05-12
  • 1 回答
  • 0 关注
  • 107 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信