我正在尝试为游戏组织一个好的OO模型(用C#/ XNA编写),但我不确定处理玩家,射弹,敌人和环境的“最佳”方式。涉及的主要课程将是:水平,玩家,瓷砖地图,敌人,射弹。通常,以下哪一项是最佳选择?
'level'类,带有'player'对象,'tilemap'对象和'projectile'对象和'敌人'对象列表,保留射弹的所有权信息并迭代射弹列表以检查碰撞。
“玩家”和“敌人”类的基类中的“射弹”对象列表。这些列表可以在“级别”类中迭代。在这种情况下,我相信死亡的玩家和敌人不会被摧毁,直到他们的射弹列表为空。
选项1在该关卡中的射弹组合对我来说更有意义,并且是我目前的工作方法:当玩家射击时,设置一个旗帜并记录他们射击的射弹。在等级类中检查此标志,并将射弹添加到列表中。
此外,在选项1的情况下,将弹丸列表公开分享的缺点是什么,以便可以轻松添加到?
谢谢。