处置导致致命信号11

时间:2015-08-11 15:33:15

标签: libgdx dispose screens

在我的libgdx游戏中,我有多个屏幕。我有点不确定如何正确使用dipose()方法。

在每个屏幕中,我创建了某些变量,然后在dispose()方法中进行处理。我在网上看到,如果我不处理,它会导致内存泄漏并导致程序崩溃。

但是,出于某种原因,每当我在MenuScreen中处理任何内容时,它都会导致应用程序崩溃(Fatal signal 11)。 (当切换不同屏幕时,错误也会在其他随机时间发生)。我不知道这与我有什么关系,我在每个班级命名我的文件相同的名字。

例如,在每个类的create()函数中,我这样做:

batch = new SpriteBatch();
shapeRenderer = new ShapeRenderer();

然后在每个班级的dispose()函数中我这样做:

batch.dispose();
shapeRenderer.dispose();

在每个类中保留相同的变量名是否会影响我的代码?除此之外,我手动处理每个图像,声音和字体。

即使我没有在MenuScreen课程中处理任何内容,也会在切换屏幕时偶然发生Fatal Signal 11错误。

很抱歉模糊,但我不确定导致此错误的原因。切换屏幕时也会有大约1秒的延迟。

注意:

切换屏幕时,我这样做:

game.setScreen(new ScreenName(game));

虽然game只是我MainClass的一个实例:

final MainClass game;

1 个答案:

答案 0 :(得分:0)

由于您要传递主类的实例,为什么要在每个类中创建一个新批处理?只需使用主类的批次