LibGdx:在应用程序生命周期中调用两次Resize

时间:2012-12-24 11:04:23

标签: android libgdx

我有一个代码,我可以获得这些输出。我使用libgdx框架,似乎自应用程序启动以来调用了两次resize。想知道为什么它被称为两次,因为我没有做任何不寻常的事情。下面的类是从实现Screen类的AbstractScreen扩展而来的。 应用程序生命周期链接:http://code.google.com/p/libgdx/wiki/ApplicationLifeCycle

The tags refer to the Functions being called:

SHOW(): devInfo.glyphWidth=18
SHOW(): devInfo.glyphHeight=27
AbstractScreen.resize: screenScaleX=0.8
AbstractScreen.resize: screenScaleY=0.8
resize(): devInfo.glyphWidth=14
resize(): devInfo.glyphHeight=21
resize(): logoSplashSprite.getWidth=204.8
resize(): logoSplashSprite.getHeight=204.8
AbstractScreen.resize: screenScaleX=0.8
AbstractScreen.resize: screenScaleY=0.8
resize(): devInfo.glyphWidth=11
resize(): devInfo.glyphHeight=16
resize(): logoSplashSprite.getWidth=204.8
resize(): logoSplashSprite.getHeight=204.8
fps 0
fps 65
.
.
.

由于 Souvik

1 个答案:

答案 0 :(得分:5)

如果您可以从“AbstractScreen”类和“Game”类发布一些示例代码,那会更好。我假设你有以下设置:

public class MySuperGame extends Game {

    @Override
    public void create() {
         setScreen(new MyScreen(this));
    }

    @Override
    public void resize(int width, int height) {
         super.resize(width,height);
    }
}

根据您在那里发布的应用程序生命周期,当启动“游戏”类时,将调用“游戏”类的以下方法:

  1. 创建()
  2. 调整大小()
  3. 问题就是当你在'create()'方法中调用'setScreen()'时,你的'Game'类设置屏幕并调用'resize()'方法新设置的屏幕。

    然后,调用'Game'类的'resize()'方法。同样,'Game'类会调用屏幕上的'resize()'方法。

    总而言之,屏幕的'resize()'方法会被调用两次。一旦设置屏幕,另一次调整游戏大小。

    希望有所帮助。