【发布时间】:2014-03-11 17:48:19
【问题描述】:
您好,我正在开发一款游戏,我想知道如何处理资源,因为我遇到了内存问题。
我有这样的事情:
public SplashScreen implements Screen {
@Override
public void render(float delta) {
}
@Override
public void dispose() {
if (batch != null)
batch.dispose();
batch = null;
}
}
public MapScreen implements Screen {
@Override
public void render(float delta) {
}
@Override
public void show() {
splashScreenInstance.dispose();
}
@Override
public void dispose() {
if (mesh != null)
mesh.dispose();
mesh = null;
}
}
一旦调用 MapScreen 的 show 方法,我就会处理启动画面。以前我将屏幕设置为MapScree。仍然调用了splashScreenInstance 的渲染方法,并且我收到了空指针异常。为什么会这样?
我希望一旦我设置了另一个屏幕,前一个屏幕将不再呈现。这似乎并非如此。我尝试在使用游戏实例设置屏幕后立即进行处理,在我要处理的屏幕上调用 hide 方法之后,最后在下一个屏幕的 show 方法上进行处理。所有这些情况在渲染当前屏幕之前仍然会渲染前一个屏幕几次。
我真的需要恢复内存,而且我不想每次(在渲染方法上)都测试空指针,因为这会降低性能。
有什么建议吗?
谢谢
【问题讨论】: