0

パッケージCanvasから を に追加しました。はダブル バッファリングを使用して描画します。java.awtJFrameCanvascanvas.createBufferStrategy(2)

render()私はあまり描いていないので、それは私の方法です。

Graphics g = strategy.getDrawGraphics();

// draw
g.drawImage(...); // Image with a size of 1000x1000
g.drawString(...); // Drawing a short String with the Frames per Second
drawModel(g); // this method draws a rotated game character with the 
              // help of Gaphics2D (Imagesize: 100x100)

g.dispose();
strategy.show();

System.currentTimeMillis() を使用してパフォーマンスを測定したところ、その結果が得られました (フレームあたりの時間):

  • 9ms
  • 9ms
  • 11ms
  • 10ms
  • 0ms
  • 21ms
  • 10ms

1 つのレンダリング プロセスに 0 ミリ秒かかり、次のレンダリング プロセスには平均時間の 2 倍かかるというのはどうしてでしょうか? また、全体的なレンダリング パフォーマンスを改善するための提案は何ですか?

// アップデート

私は今試しましたJPanel:それはフレアで、キャンバスよりもはるかに遅いです。

4

1 に答える 1

1

System.currentTimeMillis()多くの場合、10 ミリ秒よりも正確ではありません。試してみてくださいSystem.nanoTime()

于 2013-01-25T15:24:59.037 に答える