实体修改器不起作用(AndEngine / Android)

3

我正在尝试使用AndEngine进行开发,但没有相关文档可供参考,所以只能凭借想象在摸索。

终于成功显示了启动画面。现在我想给它添加一些过渡效果,但是一直没有成功。以下是我的代码:

@Override
public void onLoadComplete() {
  mHandler.postDelayed(fadeAway, 2500);
}

protected Runnable fadeAway = new Runnable() {
  @Override
  public void run() {
    // The only child of the scene is our splash sprite
    scene.getLastChild().registerEntityModifier(new SequenceEntityModifier(
        new ScaleModifier(2500, 100.0f, 200.0f),
        new RotationModifier(2500, 0.0f, 78.0f),
        new AlphaModifier(2500, 1.0f, 0.0f)
    ));
  }
};

发生的情况是 postDelayed() 运行良好(等待 2.5 秒),但随后一切都变成了黑色。我原本期望启动画面应该放大到 200%,然后旋转 78 度,最后淡出,但由于一切变成了黑色,感觉修饰符的持续时间没有起作用。
这里有明显的错误吗?
编辑:好了,找到了错误:
1. 明显 pDuration(第一个参数)应该是秒数,而不是其他地方一样的毫秒数。 2. 在 ScaleModifier() 中,1.0f 表示原始大小,因此该参数不是预期的百分比值。
(没有恶意攻击,但我真的很惊讶人们如何在没有任何文档的情况下学会使用这个库。整个源代码中没有任何注释或说明。人们是通过不断尝试和逆向工程来找出它应该如何工作的吗?无法相信作者为这个库付出了如此巨大的努力,却从未提供任何文档。)

2
是的,缺乏文档使得使用起来非常困难。这里的示例和论坛帖子非常重要。 - Jan
1个回答

0

以下是您的错误列表:

  • AndEngine中所有时间间隔都以秒为单位。
  • 正常比例是1.0f而不是100.0f
  • 不需要使用Android Handler。您应该在引擎或其他AndEngine组件的onUpdate方法中延迟您的工作。
  • 您应该仅在更新线程中应用动画,而不是在其他任何地方。mEngine.runOnUpdateThread(...)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接