我正在编写一个 libgdx 游戏,但游戏启动后没有立即显示启动画面。我正在使用 Assets 管理器在后台加载资源。有谁知道这是怎么来的? 它仅在游戏启动时显示黑屏,然后在 5-6 秒后,当资源加载到内存中时,它会显示闪屏一秒钟,然后显示主屏幕。
这是我的类(class)。
public class SplashScreen implements Screen {
private SpriteBatch batch;
private Texture logo;
private BabyGame game;
private MyAssetManager myAssetManager;
public SplashScreen(BabyGame game) {
this.game = game;
myAssetManager = new MyAssetManager();
}
@Override
public void show() {
batch = new SpriteBatch();
logo = new Texture("bg.png");
}
@Override
public void render(float delta) {
Gdx.gl.glClearColor(0.8f, 0.8f, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
batch.draw(logo,0,0,Gdx.graphics.getWidth(),Gdx.graphics.getHeight());
batch.end();
if (myAssetManager.update())
game.setScreen(new BabyOrange(game));
}
这是游戏类
public class BabyGame extends Game
{
AdService adService;
MyAssetManager assetManager;
public BabyGame(){
assetManager = new MyAssetManager();
}
@Override
public void create() {
setScreen(new SplashScreen(this));
}
}
和 Assets 类别
public class MyAssetManager {
public AssetManager manager;
public MyAssetManager(){
manager = new AssetManager();
}
public void load(){
manager.load("background-orange.png",Texture.class);
manager.load("orange-phone.png",Texture.class);
manager.load("buttons.txt", TextureAtlas.class);
manager.load("bgAudio.mp3", Music.class);
manager.finishLoading();
}
public boolean update(){
return manager.update();
}
}
最佳答案
You can add Handler() Method in :
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
startActivity(new Intent(SplashActivity.this,MainActivity.class));
finish();
}
}, 1000);
And also please check the size of the images.
关于java - Android libgdx : splash screen not showing immediately after launcher icon pressed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55951285/