私はおそらくこれを間違っているので、素敵にしてください。 私はJavaゲームを開発しており、キャラクターの動きやアニメーションをテストする段階にあります。Javaの別のクラスからの再描画を呼び出しますか?
「人物」は、グリッド上で左右に上下に移動できます。 グリッドが描画されるクラスは、gamePanelクラスです。 ボタンは、gameControlPanelクラスにあります。
私は、グリッド上に人を生み出すボタンを持っています。 私は人を左右に動かすためのボタンがあります。
[上へ移動]ボタンを押すと、その人のクラスから上へ移動メソッドが呼び出されます。 ...その方法では 次のコードである(現時点では、私は。一度に一つの「人」をテストしています)
int move = 10;
while(move!=0)
{
setTopLeftPoint(new Point((int)getTopLeftPoint().getX(),
(int)getTopLeftPoint().getY() - 3));
try
{
Thread.sleep(300);
} catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
move-=1;
}
問題は、私が呼ぶように見えることはできませんということですPersonクラス内のgamePanelクラスの再描画メソッド。 これを回避するため、gamePanelクラスに20msごとに再描画するタイマーを作成しました。
生まれた後に上ボタンを押すと、whileループのサイクルが完了するまでボタンが押し下げられたままになり、上のグリッドの四角にその人の円表示が表示されます。
私はこれに関するご質問にお答えしようとします。
私は、複数のスレッドが私にとっては複雑すぎると信じています。私は人々がこの問題に対する一種の答えと考えるべき別の質問を持っています。私は、100msのタイマーごとにロジック - ペイント - スリープを行うことに決めました。 – Relequestual