我已经使我的Pacman游戏可以运行并正在尝试重新“组织”我的代码。以前,我有一个“TopObject”,它引用了game1.cs中的对象,基本上引用了我的游戏中的每个对象(Pacman、ghosts、map等等)。我使其在任何地方都可以全局访问,这样我就可以从我的ghost对象中访问Pacman对象,或者从我的ghost对象中访问我的map/tile对象,甚至可以从任何地方访问ContentMananger来加载内容。
我知道这是不好的实践,所以我正在努力消除它。例如,我在所有对象上创建了LoadContent()方法,它需要一个“ContentManager”类型,这样我就不需要使用TopObject来调用ContentManager了。
进一步进行,我很难在没有对所有对象进行全局引用的情况下完成某些操作。例如: - 在我的Pacman Update()中...
有人知道如何更好地组织它,以便我可以干净地完成这个操作吗?我甚至应该在我的Pacman Update()中检查碰撞,还是应该创建单独的“PacmanObject.CheckCollisionWith()”,然后从我的Game1 Update()中调用它?碰撞逻辑是否也应该分离到一个新类中?
谢谢!
我知道这是不好的实践,所以我正在努力消除它。例如,我在所有对象上创建了LoadContent()方法,它需要一个“ContentManager”类型,这样我就不需要使用TopObject来调用ContentManager了。
进一步进行,我很难在没有对所有对象进行全局引用的情况下完成某些操作。例如: - 在我的Pacman Update()中...
我需要知道是否会撞墙。我需要引用我的map/tiles。
我需要知道是否与ghost碰撞,所以我需要引用我的ghost对象。
我需要知道是否与食物碰撞,然后更新记分牌,所以我需要引用我的记分牌对象。
有人知道如何更好地组织它,以便我可以干净地完成这个操作吗?我甚至应该在我的Pacman Update()中检查碰撞,还是应该创建单独的“PacmanObject.CheckCollisionWith()”,然后从我的Game1 Update()中调用它?碰撞逻辑是否也应该分离到一个新类中?
谢谢!