3

我有一个获取这些输出的代码。我使用 libgdx 框架,自应用程序启动以来似乎调用了两次调整大小。想知道为什么它被调用两次,因为我没有做任何不寻常的事情。下面的类是从实现 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
.
.
.

谢谢苏维克

4

1 回答 1

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. 调整大小()

问题在于,当您在“create()”方法中调用“setScreen()”时,“Game”类会设置屏幕并调用新设置的“resize()”方法屏幕。

然后,调用“Game”类的“resize()”方法。再一次,“游戏”类调用屏幕的“resize()”方法。

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

希望有帮助。

于 2013-03-03T00:37:42.437 回答