我想摆脱我的“制作一切静态和全局”设计模式,但是如何做呢?
我正在太空中制作一个小地牢爬行者,我想听听一些有关如何使引擎后端更好的建议。基本上,当前所有内容都是基于管理人员的: BackgroundManager:具有AddBackground(image, parallax)制作炫酷背景效果的方法。 ConfigManager:读取/制作配置文件,还保存从该配置文件读取的数据。 DrawManager:有Draw(sprite)方法来绘制的东西到屏幕上,事情就是这样SetView(view),GetView()等等。 EntityManager:包含所有活动实体,并具有添加,删除和查找实体的方法。 DungeonManager(实际上称为GridManager,但这是为了简单):有方法,如GenerateDungeon(),PlaceEnemies(),PlaceFinish()等。 现在我什至没有列出所有我的经理,所以我认为这必须改变。我的游戏也基于屏幕,这使它更令人讨厌,因为我不需要经理管理的一半内容,例如主菜单(我的主菜单中不需要物理/实体/地下城) !) 现在,我考虑使管理器不是静态的,并为我的ScreenMainGame提供所有特定于游戏的管理器的实例。但这使打电话给/获取与管理人员有关的任何东西变得一团糟...例如,如果我想从不在的任何地方绘制地牢ScreenMainGame.Draw(),我就必须这样做... ((ScreenMainGame)ScreenManager.CurrentScreen).GridManager.Draw() 真丑。 那么,游戏开发者们,你们有谁知道如何解决这个混乱局面吗?我将不胜感激!