我有一个播放器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