我有一个代码,我得到这些输出.我使用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
如果您可以从"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'类的以下方法:
问题就是当你在'create()'方法中调用'setScreen()'时,你的'Game'类设置屏幕并调用新设置的'resize()'方法屏幕.
然后,调用'Game'类的'resize()'方法.而且,'Game'类会调用屏幕上的'resize()'方法.
总而言之,屏幕的'resize()'方法会被调用两次.一旦设置屏幕,另一次调整游戏大小.
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
865 次 |
| 最近记录: |