1

どうやらこれは人気のあるトピックです。私は初心者なので、私の問題はおそらくかなり些細なことです。これは Pong のような非常にシンプルなゲームです。このコードを使用してゲームを描画しています:

@Override
public void paint(float deltaTime) {
    Graphics g = game.getGraphics();

    // draw the game elements
    if (state == GameState.Running){
        g.drawImage(Assets.back, 0, 0);
        //g.drawRect(0, 0, g.getWidth(), g.getHeight(), Color.BLACK);           
        g.saveCanvas();
        g.drawTransRect(0, 0, scene.getLine(), g.getHeight());
        g.drawImage(Assets.fore, 0, 0);
        //g.drawRect(0, 0, g.getWidth(), g.getHeight(), Color.WHITE);
        g.restoreCanvas();  


        for (Pieces p : pieces){

            if (p.getType() == true)
                g.drawImage(Assets.pos, p.getX(), p.getY());
            if (p.getType() == false){
                g.drawImage(Assets.neg, p.getX(), p.getY());

            }
        }
    }

コードをそのまま実行すると、フレームレートは約 15FPS に見えますか? ただし、drawImage (背景と前景の bmp をアセットとして) の代わりに drawRect (上でコメントアウト) を使用します。私の FPS は少なくとも 60 です。これは、bmp と Rect の表示に関連する CPU パワーがはるかに大きいことを意味すると想定しています。画像を使用して適切なフレームレートを維持するにはどうすればよいですか?

ありがとう。

編集:

それが役立つ場合、私の drawImage メソッドは次のようになります。

 public void drawImage(Image Image, int x, int y) {
    canvas.drawBitmap(((AndroidImage)Image).bitmap, x, y, null);
}
4

0 に答える 0