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

Sou*_*asu 1 android libgdx

我有一个代码,我得到这些输出.我使用libgdx框架,似乎自应用程序启动以来调用了两次resize.想知道为什么它被称为两次,因为我没有做任何不寻常的事情.下面的类是从实现Screen类的AbstractScreen扩展而来的.应用程序LifeCycle的链接: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
.
.
.
Run Code Online (Sandbox Code Playgroud)

谢谢Souvik

dev*_*013 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

根据你在那里发布的应用程序生命周期,当启动'Game'类时,将调用'Game'类的以下方法:

  1. 创建()
  2. 调整()

问题就是当你在'create()'方法中调用'setScreen()'时,你的'Game'类设置屏幕并调用新设置的'resize()'方法屏幕.

然后,调用'Game'类的'resize()'方法.而且,'Game'类会调用屏幕上的'resize()'方法.

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

希望有所帮助.