これは、一部は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はロボット画像を指すビットマップオブジェクトです。)
私は数学の魔法使いになったことがありませんが、基本は理解しています。setTransformに渡される値が時間とともに変化するように、角度変数angle += 0.025;
を増やすために使用されていることがわかります。しかし、なぜa)0.025が使われているのか理解できません。b)(Math.sin(angle)* 360)および((value)/ 360)+ 0.25の意味、およびc)値がsetTransformに渡されるだけでなく、2(value / 2)で除算される理由。
ここでこれを説明するのは難しいかもしれませんが、どんな助けでもありがたいです。実際、私が初心者で、最初に物理学を勉強する必要があると誰かが思った場合、誰かが私に頼るリソース(book / url)を教えてくれれば幸いです。
前もって感謝します。