-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