在gamedev stackexchange (原创)上转发,因为它在那边已经死了:
我已经做了大约3年的小2D游戏(XNA和最近的LWJGL/Slick2D)。我的最新想法将涉及某种形式的“天赋树”系统的实时游戏。
我一直在绞尽脑汁,却想不出一个结构来留住人才。有点像
“你的近战攻击如果在目标背后是一种即时的杀戮”
我想提出一个抽象的对象,而不是在其他方法中加入随机条件。我以前解决过一些比较复杂的问题,但我甚至不知道从哪里开始这个问题。
任何帮助将不胜感激- Java,伪代码或一般概念都是伟大的。
发布于 2012-12-15 05:25:33
您可以通过创建一组“可组合”技能对象来实现这一点,这些技能对象可以连接到代码的正确部分。
类似于:
ninjaAttackSkill = new ModifiedAttack(originalAttack,
new ConditionalHit(behindTargetCondition, new InstantKillHit()));然后,攻击技能对象可以有一个方法签名,类似于:
public SomeResult attack(Thing attacker, Thing target);然后,您可以对每个可组合的技能对象进行重写。
我在我的小游戏暴君中使用了类似于此的技术--基本上有一个"Script“对象,您可以通过子类来实现所有类型的脚本功能。
https://stackoverflow.com/questions/13889243
复制相似问题