我正在玩弄 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 等于原始大小,因此该参数不是预期的百分比。
(没有火焰,但我真的很惊讶人们如何在没有任何文档的情况下设法学习如何使用这个库。整个源代码中没有一个评论或注释。人们是否反复试验 -设计一切以找出它应该如何工作?不敢相信作者为这个库投入了大量工作却从未提供任何文档。)
最佳答案
下面列出了您的错误:
- AndEngine 中的所有持续时间都以秒为单位。
- 正常比例是
1.0f
而不是100.0f
。 - 不需要 Android 处理程序。您应该在引擎的
onUpdate
方法或其他 AndEngine 内容中延迟您的工作。 - 您应该只在更新线程而不是其他任何地方应用动画。
mEngine.runOnUpdateThread(...)
关于android - 实体修改器不工作(AndEngine/Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9550500/