我的 Pacman 游戏正在运行,并且我正在尝试通过它来更好地“组织”我的代码。之前,我有这个“TopObject”,它引用了 game1.cs 中的对象,它基本上引用了我游戏中的每个对象(pacman、ghosts、地图等)。我让它可以从任何地方全局访问,这样我就可以从我的幽灵对象访问我的 Pacman 对象,或者从我的幽灵对象访问我的地图/平铺对象,甚至从任何地方访问我的 ContentMananger 来加载内容。
我知道这是不好的做法,所以我试图消除它。例如,我在所有采用“ContentManager”类型的对象上创建了 LoadContent() 方法,这消除了我使用我的 TopObject 调用 ContentManager 的需要。
继续前进,如果没有对我所有对象的全局引用,我将很难做事。例如: - 从我的 Pacman Update()..
我需要知道我是否会撞墙。我需要参考我的地图/瓷砖。
我需要知道我是否与幽灵相撞,所以我需要引用我的幽灵对象。
我需要知道我是否与一些食物发生碰撞然后更新记分牌,所以我需要参考我的记分牌对象。
所以本质上,感觉就像我将把这么多对象引用传递给我所有的对象一样搞得一团糟,感觉做一个“全局”顶级对象要干净得多。
有谁知道如何更好地组织这个,所以我做得很干净?我是否应该检查我的 Pacman Update() 内部的冲突,还是应该创建单独的“PacmanObject.CheckCollisionWith()”并从我的 Game1 Update() 中调用它?碰撞逻辑是否也应该被分离到一个新的类中?
谢谢!