显然这是一个热门话题。我是一个初学者,所以我的问题可能是相当微不足道的。这是一个非常简单的游戏,像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作为Assets),我的FPS至少为60.我假设这意味着显示bmps vs Rects需要更多的CPU功率。如何使用我的图像并保持合适的帧速率?
感谢。
编辑:
我的drawImage方法看起来像这样,如果它有帮助:
public void drawImage(Image Image, int x, int y) {
canvas.drawBitmap(((AndroidImage)Image).bitmap, x, y, null);
}