LibGDX 场景 2D : Actions won't work at all for actors inside groups

标签 libgdx action actor scene2d

我正在尝试使用 Action FadeOut 淡出 Actor。但是,我发现 no action 对我的对象根本不起作用。我的类的层次结构是这样的:

Actor -> MoveableObject -> Knight

Stage -> KnightGroup (Group) -> Knight

我的骑士 Actor 的 Action 根本不起作用。但是,我的 KnightGroup 组的操作有效。这是我的骑士的代码:

public class Knight extends Players {
public Knight() {
    setWidth(96);
    setHeight(96);
    setPosition(100, 90);

    //Doesn't work
    AlphaAction action = new AlphaAction();
    action.setAlpha(0f);
    action.setDuration(1f);
    addAction(action);

    //Doesn't work
    addAction(fadeOut(1f));
    addAction(Actions.scaleBy(1f, 1f));
}

@Override
public void act(float delta){
    super.act(delta);
}


@Override
public void draw(Batch batch, float parentAlpha) {
    batch.setColor(getColor().r, getColor().g, getColor().b, getColor().a);
    batch.draw(animation[currentState], getX(), getY(), getWidth(), getHeight());
}
}

我一生都无法弄清楚问题是什么。在 MoveableObject 中的操作(骑士的 parent )也不起作用。我最好的猜测是将 Actor 包裹在 Group 中将 render actions那些 Actor 无效。 KnightGroup是我的代码中非常重要的一部分,我必须进行大量重构才能将其删除。其他人可以对这个问题有所了解吗?

最佳答案

Actor对方法进行分类 act(float delta)电话act(delta)所有注册 Action s本Actor .所以你必须确保你调用 super.act(delta)Actor 的每个子类中,使 act(delta) Actor 中的方法被调用。

关于LibGDX 场景 2D : Actions won't work at all for actors inside groups,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22033512/

相关文章:

java - 为什么我的程序不从 arrayList 中绘制房屋?

java - LibGDX - 将跨平台客户端连接到服务器(HTML5/GWT、iOS、Android 和桌面)

objective-c - 在运行时向 iOS 上的 Objective-c 中的对象发送动态消息

java - 为什么Akka Actor只有一个onReceive()方法可以接收消息

scala - Scala 中的 Akka,感叹号和问号

java - Json 解析为 HashMap<ArrayList<>> 在 Libgdx 中抛出 StackOverflowError?

java - 让 Jlabel 在单击后立即出现,然后在 Java 中运行代码后消失,如 Java 进度加载器、单击操作后的事件序列

asp.net-mvc - ASP.Net MVC 和状态 - 如何在请求之间保持状态

scala - Scala actor 可以同时处理多个消息吗?

body 的动态调整大小(LibGDX)