Libgdx scene2d中的BitmapFont动画

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Libgdx scene2d中的BitmapFont动画相关的知识,希望对你有一定的参考价值。

我试图动画一个演员,其中包含使用fadeIn动作用bitmapfont编写的简单消息,但它不起作用。

这是我的代码。

public class Message extends Actor{

        BitmapFont font;
        String message;
        float x, y;

        public Message(BitmapFont font, String message, float x, float y) {
            this.font = font;
            this.message = message;
            this.x = x;
            this.y = y;
        }

        @Override
        public void draw(Batch batch, float parentAlpha) {
            Color color = getColor();
            batch.setColor(color.r, color.g, color.b, color.a * parentAlpha);
            font.setColor(color.r, color.g, color.b, color.a * parentAlpha);
            font.draw(batch, message, x, y);
        }
    }

然后单击按钮时,应显示该消息,但只显示没有动画。

button.addListener(new ClickListener() {
            @Override
            public void clicked(InputEvent event, float x, float y) {
                BitmapFont font = new BitmapFont(Gdx.files.internal("myfont.font"));
                Message message = new Message(font, "Tap Here", 100, 20);
                stage.addActor(message);
                message.addAction(Actions.fadeIn(5));
            }});

同一个舞台上的其他演员动画在我打电话时工作得很好:

stage.act(delta);
stage.draw();
答案

在添加fadeIn操作之前,您应该将消息actor的alpha设置为零:

button.addListener(new ClickListener() {
            @Override
            public void clicked(InputEvent event, float x, float y) {
                BitmapFont font = new 
                BitmapFont(Gdx.files.internal("myfont.font"));
                Message message = new Message(font, "Tap Here", 100, 20);
                message.getColor().a = 0f; // add this line
                stage.addActor(message);
                message.addAction(Actions.fadeIn(5));
            }});

以上是关于Libgdx scene2d中的BitmapFont动画的主要内容,如果未能解决你的问题,请参考以下文章

将 scene2d.ui 与 libgdx 一起使用:皮肤从何而来?

带有scene2d和actor的libgdx没有显示精灵

AddListener到LibGdx Scene2d中actor的特定位置

libgdx 中的 FrameBuffer 大小

为啥 Libgdx 的 Table 不接受缩放动作?

覆盖绘图顺序scene2D的舞台