0

向こうではかなり死んでいるので、gamedev stackexchange(オリジナル)から再投稿しました:

私は約3年間、小さな2Dゲームを作成しています(XNAおよび最近ではLWJGL / Slick2D)。私の最新のアイデアは、リアルタイムゲームで何らかの形の「タレントツリー」システムを使用することです。

私は頭を悩ませてきましたが、才能を保持するための構造を考えることができません。何かのようなもの

「あなたの近接攻撃は、ターゲットの後ろにいる場合、インスタントキルです」

他のメソッドにランダムな条件文を入れるのではなく、抽象オブジェクトを考え出したいのですが。私は以前にいくつかの比較的複雑な問題を解決しましたが、これをどこから始めればよいのかさえわかりません。

任意の助けをいただければ幸いです-Java、擬似コード、または一般的な概念はすべて素晴らしいです。

4

1 に答える 1

1

これを行うには、コードの適切な部分にフックできる「構成可能な」スキルオブジェクトのセットを作成します。

何かのようなもの:

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

攻撃スキルオブジェクトは、次のようなメソッドシグネチャを持つことができます。

public SomeResult attack(Thing attacker, Thing target);

次に、構成可能なスキルオブジェクトごとにオーバーライドできます。

私は私の小さなローグライクゲームTyrantでこれに似た手法を使用しました。基本的に、あらゆる種類のスクリプト機能を実装するためにサブクラス化できる「スクリプト」オブジェクトがありました。

于 2012-12-15T05:25:33.677 に答える