【问题标题】:Entitymodifiers not working (AndEngine / Android)实体修饰符不起作用(AndEngine / Android)
【发布时间】:2012-03-03 22:40:18
【问题描述】:

我在玩 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 等于原始大小,因此该参数不是预期的百分比。

(没有火焰,但我真的很惊讶人们是如何在没有任何文档的情况下学会如何使用这个库的。整个源代码中没有一个评论或注释。人们是否反复尝试过——设计了所有东西来找出它应该如何工作?不敢相信作者为这个库投入了如此大量的工作,却从未提供任何文档。)

【问题讨论】:

  • 是的,缺少文档使得它很难使用。示例和论坛帖子在这里至关重要。

标签: android andengine


【解决方案1】:

您的错误如下:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-06
    • 2012-06-28
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 2023-03-02
    • 2010-10-20
    • 2013-03-13
    相关资源
    最近更新 更多