-1
我很困惑如何正确实现一个游戏管理器类(用来控制程序的大部分方面,比如主循环)和变量和常量程序。据我所知,变量和常量应该在主函数中定义,然后以某种方式传递给游戏经理。但是,这提出了一些障碍。到目前为止,我已经拿出了3个选项:如何在Python中正确实现游戏管理器
定义在主函数变量和它们传递到类(最标准)
class Game: def __init__(self, size, speed): self.size = size self.speed = speed def main(): SCREEN_SIZE = 10 GAME_SPEED = 30 game = Game(SCREEN_SIZE, GAME_SPEED) game.mainloop() if __name__ == "__main__": main()
定义变量的类本身
class Game: def __init__(self): self.screen_size = 10 self.game_speed = 30 def main(): game = Game() game.mainloop() if __name__ == "__main__": main()
使全球
变量SCREEN_SIZE = 10 GAME_SPEED = 30 class Game: def __init__(self): pass def main(): game = Game() game.mainloop() if __name__ == "__main__": main()
- (可能的选择)完全没有游戏管理员课程。
数字1会变得更烦人,更大的程序会有更多的变量,因此会传递更多的信息给班级。数字2违背了一个阶级的观点。 3号似乎是不好的做法。是否有我失踪的替代方案?
[在Python中创建单例]的可能重复(http://stackoverflow.com/questions/6760685/creating-a-singleton-in-python) – AChampion
我帮助某人提出了有关单例的代码问题刚刚开始工作。他的问题(以及他参考的工作代码)在这里,可以证明对您的事业有用: http://stackoverflow.com/questions/42226099/why-does-a-scene-take-a-scene-manager- as-a-parameter/ – oxrock
在这种情况下,他有两个控制游戏的主类(Director和Scene类)。我打算只有一个,因为这看起来比两个可以合并的单独的类更高效和更合乎逻辑。 – Anton