Java LWJGL获得糟糕的FPS

Dan*_*ias 3 java performance frame-rate render lwjgl

我正在写一个自上而下的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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Osk*_*kar 8

您应该使用另一种渲染方法.您现在使用的渲染方法称为立即渲染.我只想说它很慢.您应该使用另一种渲染方法,例如显示列表(仅限静态几何)或顶点缓冲区对象(更难学习,但它们不是静态的).