-1

libGDX ライブラリを使用してゲームを作成しています。衝突検出用に 2 つのバウンディング ボックスがあり、1 つは回転可能なオブジェクト用で、もう 1 つは回転可能でないオブジェクト用です。回転可能は非回転可能から継承します。

デバッグ シェイプやアニメーションのレンダリングなどの共通機能を持ち、ゲーム内のすべてのエンティティに関連するその他のゲーム情報を格納するゲーム エンティティ クラスを作成したいと考えています。これからクラスに書き込み、それを拡張してすべてのゲーム要素を生成したいだけですが、回転可能なものとそうでないものがあるため、それを行う方法は考えられません。バウンディング ボックスをグローバル オブジェクトとして単純に持つことを考えていましたが、オブジェクトをインスタンス化する方法に応じて 2 つのタイプになるグローバル変数を作成する方法が思い浮かびません。

誰でも助けることができますか?それとも、私がやっていることは間違ったやり方ですか?

4

2 に答える 2

0

良い...

あなたのコメントで私が虚偽の情報を提供したと非難された (そしてあなたはポリモーフィズムを理解していると主張した) ため、オブジェクトが親として宣言されていても、子クラスのメソッドを確実に呼び出すことができることを示す簡単な例を次に示します。クラス。

class ParentClass
{
    public void sayHey()
    {
        System.out.println("I am a parent");
    }
}

class ChildClass extends ParentClass
{
    public void sayHey()
    {
        System.out.println("I am a child");
    }
}

public void testIt()
{
    ParentClass p = new ChildClass();
    p.sayHey();  // prints "I am a child"
}

インターフェイスを実装するクラスにも同じ概念が適用されます。

ゲームでは、インターフェイスまたはスーパー クラスを使用して、回転可能または回転不可能なゲーム エンティティを表すことができます。

GameEntityFactory を使用して、必要に応じていずれかのタイプのオブジェクトを生成できます。

于 2013-04-04T19:20:06.680 に答える