0

从 gamedev stackexchange ( original ) 转贴,因为那里已经死了:

我已经制作小型 2D 游戏大约 3 年了(XNA 和最近的 LWJGL/Slick2D)。我的最新想法是在实时游戏中加入某种形式的“天赋树”系统。

我一直在绞尽脑汁,但想不出一个可以容纳人才的结构。就像是

“你的近战攻击是在目标身后立即杀死”

我想提出一个抽象对象,而不是将随机条件放入其他方法中。我以前解决过一些相对复杂的问题,但我什至不知道从哪里开始。

任何帮助将不胜感激 - Java、伪代码或一般概念都很棒。

4

1 回答 1

1

您可以通过创建一组“可组合”技能对象来做到这一点,您可以将其挂接到代码的正确部分。

就像是:

ninjaAttackSkill = new ModifiedAttack(originalAttack, 
       new ConditionalHit(behindTargetCondition, new InstantKillHit()));

然后攻击技能对象可以具有类似的方法签名:

public SomeResult attack(Thing attacker, Thing target);

然后,您可以为每个可组合的技能对象覆盖它。

我在我的小 Roguelike 游戏Tyrant中使用了类似的技术- 基本上有一个“脚本”对象,您可以将其子类化以实现所有类型的脚本功能。

于 2012-12-15T05:25:33.677 回答