这部分是 EaselJS 问题,部分是物理/动画编程问题。
我正在尝试通过研究 EaselJS zip 文件中包含的示例来学习 EaselJS。现在,我正在查看 SimpleTransform 示例(http://bit.ly/LebvtV),其中机器人旋转并淡入背景并向前景扩展。我觉得这个效果真的很酷,并且想学习如何实现它。但是,当我来到这组代码时,我迷失了:
function tick() {
angle += 0.025;
var value = (Math.sin(angle) * 360);
bmp.setTransform (bmp.x , bmp.y , bmp.scaleX , bmp.scaleY , value/2 , bmp.skewX, bmp.skewY , bmp.regX , bmp.regY );
bmp.scaleX = bmp.scaleY = ((value)/360) + 0.25;
stage.update();
}
(对于那些不熟悉 EaselJS 的人,tick() 是一个函数,它指示每个刻度上的动作,其间隔由 setFPS 设置。因此,如果我将 FPS 设置为 20,那么 tick() 将执行其语句 20 次一秒钟。我相信。这里的bmp是一个指向机器人图像的 Bitmap 对象。)
我从来不是数学方面的巫师,但我确实了解基础知识。我可以看到它angle += 0.025;
用于增加角度变量,以便传递给setTransform的值可以随时间变化。但是,我不明白为什么使用 a) 0.025。b) (Math.sin(angle) * 360)和((value)/360) + 0.25是什么意思,以及 c) 为什么value不只是传递给setTransform,而是除以 2 ( value/2 )。
我知道在这里解释这一点可能是一个挑战,但感谢任何帮助。事实上,如果有人认为我是菜鸟并且需要先学习一些物理学,如果有人能指出我的资源(书/网址)供我参考,我将不胜感激。
提前致谢。