1

私のゲームでプレーヤーが動きをすると、AI の動きが計算されるまで見えません。そして、両方の動きが一緒に表示されます。

プレイヤーの動きを表示し、その後、AI の動き (計算後) を示したいと考えています。スレッド遅延を試しましたが、役に立ちませんでした。ある種の一時停止を使用してこの可視性を追加する方法はありますが、その一時停止はプログラムの実行を一時停止してはなりませんか?

4

2 に答える 2

1
  1. プレーヤーは選択を行い、プレーヤー入力の受け入れを停止し、スレッドでプレーヤーの動きのアニメーションを開始し、別のスレッドでAIを開始します。
  2. AIが実行され、プレーヤーの動きのアニメーションが実行されていない場合:wait(100)。プレイヤーの動きのアニメーションが完了したら、AIの動きのアニメーションを開始します。
  3. AIの動きのアニメーションが完了したら、プレーヤーの入力の受け入れを再開します。

    手順2で、AIがプレーヤーの動きのアニメーションよりも時間がかかる場合は、待機中のアニメーションを表示します。この待機中のアニメーションは、AIの動きのアニメーションを開始する前に停止する必要があります。

于 2012-08-16T11:44:27.377 に答える
-1

プレーヤーが移動を完了した場合にのみ true に設定されるブール チェックをいつでも作成できます。

public class ... 
{
    boolean playerMoveMade = false;

    ...

    public void gameCycle() 
    {
        ...

        if (playerMoveMade) 
        {
            playerMoveMade = false;
            // ... render AI move
        }
    }
}
于 2012-08-15T17:29:17.880 に答える