从 gamedev stackexchange ( original ) 重新发布,因为那里已经死了:
我制作小型 2D 游戏已经大约 3 年了(XNA 以及最近的 LWJGL/Slick2D)。我最新的想法是在实时游戏中涉及某种形式的“天赋树”系统。
我绞尽脑汁,却想不出一个可以容纳人才的结构。类似的东西
"Your melee attack is an instant kill if behind the target"
我想提出一个抽象对象,而不是将随机条件放入其他方法中。我以前解决过一些相对复杂的问题,但我什至不知道从哪里开始解决这个问题。
任何帮助将不胜感激 - Java、伪代码或一般概念都很棒。
最佳答案
您可以通过创建一组“可组合”技能对象来实现此目的,您可以将它们挂接到代码的正确部分。
类似于:
ninjaAttackSkill = new ModifiedAttack(originalAttack,
new ConditionalHit(behindTargetCondition, new InstantKillHit()));
攻击技能对象可以有一个方法签名,如下所示:
public SomeResult attack(Thing attacker, Thing target);
然后您可以为每个可组合技能对象覆盖它。
我在我的小型 Roguelike 游戏中使用了类似的技术 Tyrant - 基本上有一个“脚本”对象,您可以对其进行子类化以实现所有类型的脚本功能。
关于java - 游戏开发 - 抽象技能/天赋系统实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13889243/