Libgdx | 如何创建启动画面?

Wya*_*att 1 java android splash-screen libgdx

我想知道创建启动画面的最佳方法是什么(当你开始游戏时,公司徽标动画).我在后效果中创建了一个.mp4启动画面,但找不到在libgdx中显示它的方法.创建启动画面的最佳方法是什么?你可以使用.mp4文件并播放它吗?

ham*_*ham 7

我不得不说@AkashBhave接受的答案是制作闪屏的一种非常奇怪的方式,并且可能不应该被接受为"最佳"方式.启动画面的目的是在游戏或应用程序在后台加载时暂时显示某些内容.如果您要加载大量资产,则可能需要长达10秒的时间才能在慢速设备上准备应用程序.接受的答案绝对没有提到异步加载资产,并且假设在继续使用"游戏代码"之前只有一个简单的计数器,可以假设这个启动画面只会在所有内容都已加载后显示,否则会出现不保证资产被加载,如果没有,它就会崩溃.

我个人认为制作启动画面的"最佳"方法是尽可能快地显示,当点击应用程序打开它时,最好不到一秒钟.这样做的方法是使用AssetManager仅加载Asset显示启动画面所需的s.然后,当您的启动画面显示/动画时,您告诉AssetManager您加载其余的核心组件.完成后,您将继续使用主应用程序.

我张贴的答案带着几分与此相关的更多的细节在这里,并有一个相当不错的深入指南上AssetManagerlibGDX维基.

所以,关键在于assetManager.update(),这有两件事.1,它告诉AssetManager加载.load()项目队列,2,true如果它已经完成则返回.因此,如果您还想确保您的启动画面已显示一段时间,您可以执行以下操作;

public void render(float delta){
    //code to render splash here

    //check if assets are loaded and time greater than 10 seconds
    if(assetManager.update() && TimeUtils.timeSinceMillis(startTime) > 10000){
        app.setScreen(new MainScreen());
    }
}
Run Code Online (Sandbox Code Playgroud)

或者,如果你有一个libGDX Animation,你会做类似的事情;

 if(assetManager.update() && animation.isAnimationFinished(startTime)){..}
Run Code Online (Sandbox Code Playgroud)