我的游戏大约需要一分钟才能在 android 中加载,直到出现第一个屏幕。在加载之前,jmonkey 的输入管理器似乎将所有输入排队,这会在我的第一个漂亮屏幕加载后立即导致令人讨厌的行为(自动按钮点击)。
当场景加载时也会发生同样的情况(再次按下适当的漂亮按钮需要一段时间)。尽管我在最后一个加载的 App State 中设置了映射和侦听器,但还是会发生这种情况。
有没有办法刷新所有以前的输入,我可以在将侦听器添加到输入管理器之前和之后调用这些输入?
我在更新()和初始化我的应用程序状态方面没有做太多工作,但是我在漂亮的 OnClick()上调用的一些函数(重新初始化())加载了场景图中的所有场景和模型,因此需要一段时间。这是我的应用程序的伪代码
In Main.java {
// Nothing in SimpleUpdate()
// This app state contains
stateManager.attach(new MainMenuAppState());
}
In MainMenuAppState.java implements ScreenController {
initialize() {
niftyDisplay = new NiftyJmeDisplay(app.getAssetManager(), app.getInputManager(), app.getAudioRenderer(), app.getGuiViewPort());
// Create a new nifty GUI object
nifty = niftyDisplay.getNifty();
// attach a couple of more app states which also has nothing significant in update loop
// do some good computation
// attach 5 new APP STATES which does not have anything significant in update()
display the appropriate screen of nifty
}
onClick() {
nifty.gotoScreen(“loadScreen”);
// appstate previously attached. they dont have anything significant in update.
// They have significant initialize methods.
app.enqueue(
rgas.reInitialize(time,cameraLoc,cameraRot);
maes.reInitialize(qId); // loads all the scene and models on screen
nifty.gotoScreen(“hudScreen”);
nifty.getScreen(“hudScreen”).findElementByName(“ConfirmModuleButton”).setFocus();
ppes.reInitialize(); // this contains input mappings
);
}
}