显然,这是一个热门话题。我是初学者,所以我的问题可能是相当微不足道的。这是一个非常简单的游戏,类似于 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);
}