1

そのため、複数の移動オブジェクト (間違いなく 10 以上) があり、一部がユーザーの KeyEvents によってトリガーされる「ゲーム」タイプのアプリケーションを作成する必要があるという課題があります。概念は理解できたようですが、質問があります。すべてのオブジェクト (上下にアニメーション化される) を描画し、KeyEvents を含めて、すべてが一度に実行され、直線的なシーケンスにならないようにするにはどうすればよいですか。これについてマルチスレッドを調べましたが、これが1つのスレッドでしか実行できないと感じているので、それが良い考えであるとは思えません。

フィードバックやアイデアをいただければ幸いです。ありがとう!:)

私が意味することの例は次のとおりです。

public void onPaint(Graphics g){
g.draw(apple);
g.draw(character);
moveCharacter(g);
moveApple(g);
}

ここでは、まずキャラクターを動かし、次にリンゴを動かさなければなりません。どうすれば両方を同時に動かすことができるでしょうか? 複数のオブジェクトを除く。

4

1 に答える 1

0

理想的には、実際のゲーム ロジックをレンダリングから分離する必要があります。描画スレッドとは別のスレッドで計算、移動などを行います。並行性に関連して、これから発生する可能性のある微妙な複雑さがいくつかありますが、それでも良い考えです。

「両方を同時に行う」とはどういう意味かは明確ではありませんが、コードは非常に高速に実行されるため、同時に実行することもできます。回避したいのは、メソッドに何らかの種類のブロックがあることです (例: ユーザー入力)。

于 2013-11-04T21:46:34.163 に答える