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?但是,使用drawRect(上面注释掉)而不是drawImage(背景和前景bmps作为资产),我的FPS至少为60。我假设这意味着显示bmps vs Rects涉及更多的CPU能力。如何使用我的图像并保持良好的帧率?

谢谢。

编辑:

如果有帮助,我的 drawImage 方法如下所示:

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

0 回答 0