Android libGDX游戏动作缓慢

Android libGDX游戏动作缓慢,android,libgdx,Android,Libgdx,我有一个游戏,当我进入游戏屏幕时,它变得非常慢,相当快。在游戏屏幕上,如果我什么都不做,看着,FPS会下降到10以下,并在30秒内保持在那里。我一直在寻找我的代码,我想我已经把它缩小到了一个部分,但我不明白为什么它不工作,或者如何修复它 start_button = new TextButton("Start", Resources.getSkin()); start_button.setWidth(75); start_button.setHeight(25); sta

我有一个游戏,当我进入游戏屏幕时,它变得非常慢,相当快。在游戏屏幕上,如果我什么都不做,看着,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的render方法中,我调用了一个方法,并在该方法中创建了四个TextButton。似乎是问题所在的代码部分是我在舞台上添加按钮时的最后四行。如果我把这些台词注释掉,游戏运行得很好,FPS经常是60。如果我只注释掉其中的三行,并在舞台上添加一个按钮,FPS仍将下降到10以下,但需要更长的时间,最终峰值恢复到60


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

如果您在游戏屏幕的渲染方法中执行所有这些操作,那么这就是您的错误

因为每次你创建一个新的按钮并把它添加到舞台上,这绝对是不好的。 每次添加内容到后台时,它的列表都会增加,如果根据调用渲染方法的频率,列表会增加,处理该列表的时间也会增加


不要忘记垃圾收集器,因为正在生成大量对象,当垃圾收集器被调用时,您的fps肯定会减少。

如果您在游戏屏幕的渲染方法中执行所有这些操作,那么这就是您的错误

因为每次你创建一个新的按钮并把它添加到舞台上,这绝对是不好的。 每次添加内容到后台时,它的列表都会增加,如果根据调用渲染方法的频率,列表会增加,处理该列表的时间也会增加


不要忘记垃圾收集器,因为正在生成大量对象,当垃圾收集器被调用时,fps肯定会减少。

addActor做了什么?您在渲染方法中正在执行所有这些操作?所有这些看起来都像是在创建屏幕时只需要调用一次的代码。addActor做了什么?您在渲染方法中做了所有这些?所有这些看起来都像是创建屏幕时只需调用一次的代码。