我有一个启动画面和一个菜单屏幕类,它为菜单加载我所有的纹理图册和皮肤并处理很多东西.如果我把菜单屏幕的构造函数放在SplashScreen构造函数或我的主游戏类(MyGame类)的create()方法中,那么它会在手机上传递很多时间而没有闪屏渲染图像,而整个东西加载所以我已经将菜单类的加载延迟到第二帧渲染(在第二帧中的SplashScreen渲染方法中调用); 我只是检查是否通过了第一帧,然后在主游戏类上调用加载菜单的方法.
一切正常,正如预期的那样,但前提是SplashScreen加载过程没有中断.如果我接到电话或者我只需按下移动设备的HOME按钮然后我通过单击主屏幕上的图标重新进入游戏我得到一个AndroidGraphics错误:"等待暂停同步花了太长时间:假设死锁和杀死" ; 这是在我看到屏幕上的闪屏大约一秒之后;
我试图在主游戏类和启动画面类的hide()和pause()方法中处理MyGame,所以当我按下HOME按钮但它们永远不会被调用时它会被终止.
我怎样才能解决这个问题?在加载游戏时接听电话并在完成通话后尝试重新进入游戏时会很烦人.
public class MyGame extends Game{
...
public MainMenu menu;
...
@Override
public void create(){
this.screen_type == SCREEN_TYPE.SPLASH;
splashScreen = new SplashScreen();
setScreen(splashScreen);
}
...
@Override
public void pause(){
//never gets called if I press the HOME button in middle of splash screen
if(this.screen_type == SCREEN_TYPE.SPLASH)
{
this.dispose();
}
}
...
public void LoadMenuTimeConsumingConstructor(){
//load all menus and process data
main_menu …Run Code Online (Sandbox Code Playgroud) 我正在尝试安排和缩放表格中的一些元素,我需要知道表格的高度才能实现这一切.问题是每当我试图获得它的高度时它总是返回0,即使表明显在屏幕上并且具有确定的大小.这是为什么?
table_height = table.getHeight();
Run Code Online (Sandbox Code Playgroud) 我试图在按钮点击后缩放ImageButton,但它似乎没有任何效果.我也尝试将ImageButton添加到表中然后缩放表但它也不起作用.尽管fadeIn,fadeOut和moveTo之类的操作也可以.
btnPlay.addListener( new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
imagebutton.addAction(scaleBy(10f, 10f, 2f));
};
});
Run Code Online (Sandbox Code Playgroud)
可能是什么问题?
我在每帧中都进行了大量的三角计算.Java的Math函数比Libgdx的MathUtils更快吗?
或者是否有任何其他我可以使用的库比这两个更快?