因此,我一直在考虑我的课程在很多时候会变得多么单板。例如,在Character
类的Jump
方法中,可以引用声音效果对象并进行播放。就其本身而言,这很好,但是当考虑到物理,动画,碰撞等因素时,Jump方法将变得非常庞大,并且Character
该类对许多不同的事物具有很多依赖性。不过,这可能很好。但是,如果我们不再希望角色跳跃时播放声音该怎么办?现在,我们必须在混乱的代码中找到特定的代码行,Jump
并将其注释掉。
所以..我在想..
相反,如果有某种AudioSystem
类,而它所做的只是订阅它对其他类感兴趣的随机事件,那该怎么办?例如,Character
类可能有一个Jumped
事件(我想也是静态的),该事件Character
在方法的类内引发。然后,Character
班级对角色跳跃时播放的声音效果一无所知。那AudioSystem
将是一个巨大的类,程序员可以撤退以通过使用静态事件将声音效果与游戏中发生的某些事件联系起来。然后,如果它得到太大,它可以在像子分离EffectsAudioSystem
,BackgroundAudioSystem
,AmbientAudioSystem
,等等。
然后,在游戏的选项中,可以有一个复选框来启用或禁用这些声音,而要做的只是用一个简单的单个布尔标志禁用一个系统。系统的概念也可以扩展到物理,动画等方面,以至于玩家行为所导致的大多数游戏响应都通过这些精心设计和分离的系统进行连接。
好的,我的问题可能有点含糊,但是这种声音听起来如何?我真的从未听说过有关这种系统的很多讨论。目前为止,这一切都在我的脑海中进行,到目前为止,尚未进行任何编码,因此,这也许是“理论上不错,但实际上却不好”的交易之一。这种系统是否可以在更大的游戏上使用,还是最终会崩溃,甚至比原始系统更像是意大利面条般的混乱?