Java LWJGL获得糟糕的FPS

时间:2012-06-23 18:50:29

标签: java performance render lwjgl frame-rate

我正在写一个自上而下的2D游戏。我使用128x128px tileset,并提供四种缩放级别,128,64,32和16px。我在我的图像上使用slick-utils绘制方法来渲染它们,循环通过二维FOR循环,并在混合中添加了一个“渲染范围”,以确保仅为可见内容渲染必要数量的切片在屏幕上。延迟显然来自渲染过程,虽然我在最高缩放级别128x128获得稳定的FPS,但它在16x16px时稳步下降到10FPS。我确信这是一个代码问题的效率,但作为一个新手,我不知道从哪里开始处理它。

所有帮助表示感谢,谢谢!

代码:

for(int x=xPos-1;x<=xPos+renderRange;x++){
    for(int y=yPos-1;y<=yPos+renderRange;y++){

        /**Render Terrain*/
        Image texture = getTerrainTexture(map.tiles[x][y]);
        texture.rotate(map.tiles[x][y].imageRotate);
        texture.draw(x*128,y*128);

        /**Render Objects*/
        if(map.tiles[x][y].object != 0){
            Image object = getObjectTexture(map.tiles[x][y]);
            object.draw(x*128,y*128);
        }
    }
}

1 个答案:

答案 0 :(得分:8)

您应该使用其他渲染方法。您现在使用的渲染方法称为立即渲染。我只想说它很慢。您应该使用另一种渲染方法,例如display lists(仅限静态几何)或vertex buffer objects(更难学,但它们不是静态的)。