这是一个设计问题。我敢肯定,这可以进一步推广,但是我很难过。我想知道游戏对象交互的设计-这是我的示例(二维拼图平台)。
假设玩家正在尝试逐步升级。有许多可以指向不同方向的灯。这是这些灯光对象如何相互作用的示例。
- 一盏灯投射出一个平台,使玩家可以越过空隙
- 一盏灯会降低其触摸的任何物体的摩擦系数,另一盏灯会增加它的摩擦系数。
- 一盏灯使所有灯的效果无效,这将使平台在该灯打开时消失,并使摩擦修饰符无效。
- 等等...
使用组件体系结构时解决此问题的最佳方法是什么?每个主要对象的组件似乎都是显而易见的,而且是一种清晰的方法来定义其对环境的影响。一个用来“解决”交互作用的类(好像这样很快就会变得一团糟)?使用装饰器模式为在给定时间进行交互的对象创建组合对象?一个适合这种情况的数据结构?
另外,将音频连接到这些交互吗?似乎将音频连接到系统就像连接其他属性一样,例如可见性或播放器移动/碰撞。
显然,随着添加更多组件,如果有一个健壮的系统可以进行少量修改就可以处理新组件,那将是很好的选择,但是我不熟悉如何进行此设计。
其他信息:我使用的引擎是一个名为IceCream的XNA引擎。