我正在使用libGdx编写Pong类游戏。 在GameScreen中,我想显示每个玩家的剩余生命。 为此,在GameScreen的创建()我有包含几个ImageButtons一个表:加载时间 - GameScreen在显示之前开始运行
for(int i = 0; i < lifePlayer1; i++){
lives[i] = new ImageButton(skin, "Life");
lifeTable.add(lives[i]);
lives[i].setVisible(true);
lives[i].setTouchable(Touchable.disabled);
}
每个的ImageButton代表的生活。当玩家失去生命时,与失去的生命相对应的ImageButton被setChecked,并且imageChecked代表失去的生命
在游戏开始之前,我想显示一条消息,说“游戏开始!”。消息从左到右穿过屏幕,并且仅当消息消失时才开始游戏。
我遇到的问题是lifeTable的实例化需要时间,并且GameScreen在实例化完成之前开始运行。我解释一下:
- 当我禁用lifeTable时,一切运行平稳,“游戏开始!”消息从左至右穿过屏幕并开始游戏。
- 当我启用lifeTable时,当按MainMenueScreen中的“New Game”按钮时,会有一个延迟(假设为0.5秒),就像加载时间一样,并且当GameScreen最终显示时,“Game开始!“消息几乎已经穿过屏幕。
- 我有一个2人模式,有2张lifeTable可以加载,更糟的是,当GameScreen在2人模式下显示“游戏开始!”时,消息已经完成穿越屏幕并且游戏已经开始。
我正在使用AssetManager,游戏中使用的每个纹理在到达MainMenuScreen之前已经加载。 AssetManager帮助减少了GameScreen加载时间,但仍然不令人满意。
是否有预加载lifeTable的东西,与我们使用AssetManager预加载纹理的方式相同? 或者,有没有办法让GameScreen的render()仅在create()完成了对象的实例化时才启动?
谢谢你的帮助。
我会改变答案,因为我的英语不是很好,我想我明白你想要做的很糟糕 – 2014-12-03 05:40:39