【发布时间】:2016-08-06 02:16:05
【问题描述】:
如何在 libgdx 中为演员创建自定义操作?如果我不能,那么至少有一个动作来运行一段自定义代码(例如调用方法动作)吗?谢谢。
编辑: 我创建了这个类:
class GapSizeAction extends TemporalAction {
private float newSize;
private Blocker blocker;
public static GapSizeAction getRotateAction(float newSize, float duration) {
return new GapSizeAction(newSize, duration);
}
public GapSizeAction(float newSize, float duration) {
super(duration);
System.out.println("Construct");
this.blocker = (Blocker)target;
this.newSize = newSize;
}
private float start, end;
protected void begin() {
System.out.println("Begin");
start = blocker.gap;
}
protected void update(float percent) {
blocker.gap = (start + (end - start) * percent);
}
}
问题是我正在使用带有间隙成员(浮点数)的自定义演员。我尝试将目标强制转换为阻止程序,以便我可以访问 gap 成员变量,但 gap 最终为空。我可以确认 gap 不为空,我在构造函数中对其进行了初始化。拦截器(自定义参与者)也不为空。我是不是搞错了?
【问题讨论】:
-
使用 RunnableAction 在您的操作中调用方法。如果您想要一个随着时间逐渐执行某项操作的操作,请扩展 TemporalAction。查看 MoveToAction 源代码,了解如何执行此操作的示例。
-
@Tenfour04 我遇到了麻烦。我实现了 TemporalAction,查看了 MoveToAction,然后创建了一个类。我将编辑上面的代码以显示我所做的。长话短说,这不是工作,更多细节在上面。
标签: libgdx