首页 文章

libGDX游戏表现缓慢

提问于
浏览
0

我有一个游戏,当我进入GameScreen时,它会很快变得非常缓慢 . 在GameScreen上,如果我什么都不做并观看,FPS下降到10以下并在30秒左右停留在那里 . 我一直在寻找我的代码,我想我已经将它缩小到一个部分,但是对我来说没有意义,为什么它不起作用,或者如何解决它 .

start_button = new TextButton("Start", Resources.getSkin());
    start_button.setWidth(75);
    start_button.setHeight(25);
    start_button.setX(FRUSTUM_WIDTH / 10); 
    start_button.setY(FRUSTUM_HEIGHT / 4);

    ...

    stage.addActor(start_button);
    stage.addActor(pause_button);
    stage.addActor(reset_button);
    stage.addActor(platform_button);

在我的GameScreen的渲染方法中,我调用一个方法,并在该方法中创建了四个文本按钮 . 似乎是问题的代码部分是我将按钮添加到舞台时的最后四行 . 如果我注释掉这些线条,那么游戏运行正常并且FPS一直是60.如果我只注释掉三条线,并在舞台上添加一个按钮,那么FPS仍将降至10以下,但需要更长时间最终飙升至60 .

为什么这些线条会减慢游戏速度?

1 回答

  • 4

    如果您在Gamescreen的渲染方法中执行所有操作,那么这就是您的错误 .

    因为每次你创建新按钮并将其添加到肯定不好的舞台 . 每次向舞台添加内容时,其列表都会增加,如果依赖于调用渲染方法的频率,则列表会增加,因此处理该列表的时间也会增加 .

    不要忘记垃圾收集器,因为正在制作大量的对象,当垃圾收集器被调用时,你的fps肯定会减少 .

相关问题