1

ゲームエンジンを作りたいと思ったのですが、「自動インポート」する必要があることにすぐに気付きました。たとえば、クラスimplements Runnableにメソッドが必要なため、エラーが発生します。run()

これどうやってやるの?実装時にクラスを作成し、メソッドを強制してから、このメソッドを自動的に実行するにはどうすればよいですか?

答えるときに使用できる例:

フレームクラスがあります。このフレーム クラスは、実装されると、それを実装したクラスで という名前のメソッドdraw()を常に使用し、フレーム クラスを使用するために実装する必要があります。コード例:

public class test implements HFrame {
    // constructor
    public test() {

    }

    // method called when test is run
    public static void init() {
        HFrame f = new HFrame(WIDTH, HEIGHT);
        f.display(); // makes the frame visible
    }

    // method that frame will always call when it is implemented
    public void draw() {
        // stuff to draw
        new Circle(0, 0, 50, 50);
    }
}

コメントを使用して、どうすればこれを機能させることができますか?

助けてくれてありがとう。これが最善の言葉ではない場合は申し訳ありません...

4

3 に答える 3

1

実行するメソッドを含むインターフェイスを作成します。使用されるすべてのクラスは、そのインターフェースを実装する必要があります。これはまさにそのRunnable仕組みです: スレッドがランナブルを実行するために呼び出すことができるRunnable1 つのメソッドを持つインターフェイスです。void run()

于 2013-10-07T18:39:01.713 に答える
1

クラスに特定のメソッドを実装するように「強制」するには、インターフェイスを使用します。その例を以下に示します。

public interface GameEngineInterface {
    void init();
    void draw();
    Vector3d annotherMethod(Object object);
}

ゲーム エンジンで使用されるすべてのクラスは、GameEngineInterface エンジンを実装します。

GameEngine メソッドはそのように機能します

public Object someMethod(GameEngineInterface anyObjectThatImplementsGameEngineInterface){
    //method body
}

GameEngine は実装メソッドの詳細を気にせず、それらのメソッドを呼び出すことができるだけです。

于 2013-10-07T18:39:15.727 に答える
0

Template Method design patternを実装する必要があるようです。あなたの例では、具象クラスに実装する必要があるrunを呼び出します。draw()

于 2013-10-07T18:42:54.260 に答える