我有一個播放器class
,NPC class
,BattleManager class
和遊戲class
。從另一個類訪問實例化對象-c#
玩家類商店/獲取/設置玩家屬性,如健康,耐力,水平,體驗。 NPC是相似的,但是是NPC。遊戲class
實例化玩家class
和NPC class
。遊戲玻璃有兩個GameStates,戰鬥和非戰鬥。
當玩家在戰鬥中時,GameState進入戰鬥狀態,當戰鬥結束時,它切換到非戰鬥狀態。
我想要做的是讓BattleManager class
管理NPC和玩家之間的戰鬥,然而,由於玩家和NPC對象是在Game類中實例化的,所以我需要知道如何傳遞該對象或訪問它從戰鬥管理器沒有實例化一個新的。
任何人都可以建議如何工作的一般流程?我知道這是錯誤的,但有沒有辦法像Game.Player.Health -= damage;
這樣做?例如,在播放器class
內部是public
int Health get/set
,當Player類在Game類中實例化時,如何從其他類中編輯健康狀況?有沒有辦法通過播放器object
繞過或僅從其他類訪問在Game類中創建的實例化對象?
我建議你閱讀一些**設計模式**。它們是針對常見問題的精心設計的解決方案,例如您的解決方案。你應該模擬一個玩家應該做的一切(即* methods *),比如'TakeDamage'。責任鏈也包含在一些設計模式中。 – 2012-07-27 01:44:10
'公共事件BattleStarted ITSON'和'public delegate void BattleStarted(object sended,BattleStartedEventArgs e)'''class BattleStartedEventArgs:EventArgs {public Player One {get; set;} public NPC Two [get; set;}}'' – Will 2012-07-27 01:45:55