我有一个代码,我可以获得这些输出。我使用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
答案 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);
}
}
根据您在那里发布的应用程序生命周期,当启动“游戏”类时,将调用“游戏”类的以下方法:
问题就是当你在'create()'方法中调用'setScreen()'时,你的'Game'类设置屏幕并调用'resize()'方法新设置的屏幕。
然后,调用'Game'类的'resize()'方法。同样,'Game'类会调用屏幕上的'resize()'方法。
总而言之,屏幕的'resize()'方法会被调用两次。一旦设置屏幕,另一次调整游戏大小。
希望有所帮助。