Java LWJGL FPS 越来越差

标签 java performance render lwjgl frame-rate

我正在编写一个自上而下的 2D 游戏。我正在使用 128x128px tileset 并提供四个缩放级别,128、64、32 和 16px。我在我的图像上使用 slick-utils draw 方法来渲染它们,通过二维 FOR 循环循环,并在混合中添加了“渲染范围”以确保只渲染必要数量的图 block 以显示可见内容在屏幕上。滞后显然来自渲染过程,虽然我在最高缩放级别 128x128 下获得稳定的 FPS,但在 16x16 像素时稳步下降至 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);
        }
    }
}

最佳答案

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

关于Java LWJGL FPS 越来越差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11172091/

相关文章:

JavaScript - 是否有更有效的方法来创建选项元素?

performance - 绑定(bind)字段如何在 Angular 中工作?

javascript - 'into' 警告从多个 this.render() 抛入 Ember.js

ios - 无法渲染尺寸大于 640x640 的视频

python - 为什么 numpy 平方根反比 "x**(-1/2)"比 "1/np.sqrt(x)"慢这么多

ruby-on-rails - 局部变量没有通过渲染传递给部分模板?

Java 代码到 ruby

java - Android HttpURLConnection : Handle HTTP redirects

添加到 observableList 时,JavaFX ListView 会重复呈现的项目

java - 从另一个 JFrames 构造函数创建 JFrame