2

私は Java でゲームを作成しており、現在、すべてのアニメーションとゲーム コントロールにタイマーを使用しています。しかし、タイマーの速度を上げる正しい方法を選択するのに苦労しています。私のゲームは、ゲームが進むにつれてどんどん速くなっていきます。オブジェクトの速度を上げる方法はたくさんありますが、どの方法を使用するのが最も効率的かわかりません。

たとえば、intxposがオブジェクトの xposition をインクリメントする変数であるとします。

Timer timer = new Timer(100, new ActionListener()  //01
{                                                  //02
    public void actionPerformed(ActionEvent e)     //03
    {                                              //04
        xpos++;                                    //05
        repaint();                                 //06
    }                                              //07
}                                                  //08
                                                   //09
timer.start();                                     //10

この速度を上げるために、5 行目の xpos の増分を に増やすことができますxpos+=2

タイマーのミリ秒パラメーターを 1 行目に減らすことで、速度を上げることもできますTimer timer = new Timer(50, new ActionListener()

または、同じタスクを実行してタイマーの速度を 2 倍にする 2 つ目のタイマーを追加することもできます。基本的に、私はこれを行うことができます:

Mover mover = new Mover();
Timer timer = new Timer(100, mover);        
Timer timer2 = new Timer(100, mover);
timer.start();
timer2.start();

class Mover implements ActionListener
{                                                  
    public void actionPerformed(ActionEvent e)     
    {                                              
        xpos++;                                    
        repaint();                                 
    }                                              
}   

どれが最も効果的だと思いますか?それとも、これらすべてのテクニックを組み合わせる必要がありますか? 返信ありがとうございます。

4

1 に答える 1

4
  • タイマーのビートを安定させ、不変に保ちます。
  • double または Point2D.Double を使用して、論理的な位置と速度を保存します。
  • タイマー間隔の精度に依存しないでください。
  • 速度とシステム時間の変化に基づいて位置の変化を計算します。
于 2013-05-20T02:34:09.657 に答える