0

私はゲームプログラミングに少し慣れていないので、Javaで少し実験することにしました。私はSwing/AWT apiを使用して、JPanelを利用してゲームを実装しています。しかし、ゲームに「時間の経過」をどのように実装するかはわかりません。誰かがこれについて何か考えを持っていますか?

ありがとう!

4

2 に答える 2

1

あなたが探しているのはゲームループと呼ばれています。これに関して利用可能なドキュメントはたくさんあります。これが簡単なものです:

private boolean isRunning;

public void gameLoop()
{
    while(isRunning) //the loop
    {
        doGameUpdates();
        render();
        Thread.sleep(1000); //the timing mechanism
    }
}

whileループ内のコードは何度も実行され、実行の合間に1秒間スリープするという考え方です。これは「時間の経過」を実現する方法です。たとえば、X位置のオブジェクトがあり、whileループに配置object.X += 1した場合、オブジェクトのX位置は、ループの反復ごとに1ずつ進みます。つまり、1秒あたり1です。

これは非常に基本的なゲームループであり、いくつかの問題がありますが、初心者の場合は問題ありません。もう少し経験を積んだら、可変および固定のタイムステップゲームループを調べます。

ただし、表示が実際に更新されるように、このコードを別のスレッドで実行する必要があります。

于 2012-08-07T15:13:15.400 に答える
1

たぶん、Javaのスレッドを見る必要があります: http : //www.javaworld.com/jw-04-1996/jw-04-threads.htmlゲームループの再描画と処理専用の新しいスレッドを作成します(他の回答を参照) 。

編集:このチュートリアルは役立つかもしれません:http://zetcode.com/tutorials/javagamestutorial/

于 2012-08-07T15:12:44.917 に答える