LibGdx - 屏幕之间的转换

ruf*_*991 17 screen libgdx

我正在尝试更改Libgdx屏幕之间的动画.我想写自定义动画(淡入淡出,淡出等).有人能给我一个线索吗?我似乎无法在Libgdx代码中找到过渡的实现.

Ked*_*edu 15

这是我做的:

FadeIn非常简单,只需将其添加到你的fadein Screens show():

stage.getRoot().getColor().a = 0;
stage.getRoot().addAction(fadeIn(0.5f));
Run Code Online (Sandbox Code Playgroud)

FadeOut有点棘手.您不想立即切换屏幕,因此不要调用game.setScreen(newScreen)在您的淡出屏幕中创建一个方法,如下所示:

public void switchScreen(final Game game, final Screen newScreen){
    stage.getRoot().getColor().a = 1;
    SequenceAction sequenceAction = new SequenceAction();
    sequenceAction.addAction(fadeOut(0.5f));
    sequenceAction.addAction(run(new Runnable() {
        @Override
        public void run() {
            game.setScreen(newScreen);
        }
    }));
    stage.getRoot().addAction(sequenceAction);
}
Run Code Online (Sandbox Code Playgroud)

像这样,您可以在淡出期间延迟屏幕切换.


alr*_*ord 5

我使用Scene2D和通用补间引擎实现了一些滑动过渡.你可以在这里找到示例代码.

http://www.netthreads.co.uk/2012/02/09/libgdx-scene2d-demo-with-scene-transitions/

更新:本文说明了我实现滑动过渡的方法.底部有一个链接,可以在这里带您进行一组演示https://github.com/alistairrutherford/libgdx-demos

有关如何构建演示的明确说明,但您需要至少掌握maven以及如何设置它.

  • 现在链接似乎已经死了。这就是为什么你永远不应该用简单的链接来回答问题。 (2认同)