003[移動(イージング)]
2008/06/07
前回の加速とは若干やり方は変りますが、idouXで最初設定した3に0以上1未満の数字を掛けて徐々に0に近づけていく。これがミソです。
つまり算数の問題でした。
*レシピ*
onClipEvent (load) { //インスタンスがロードされたとき
idouX = 3; //X方向の移動距離を3(移動距離3をidouXに代入)
idouY = 0; //Y方向の移動距離を0(移動距離0をidouYに代入)
}
onClipEvent (enterFrame) { //フレームが再生されるたびに
idouX *= 0.9; //idouXに0.9を掛ける(つまり3*0.9をして徐々に0に近づける)
_x+=idouX; //X座標に可変するidouXを代入する
_y+=idouY; //X座標をidouYつまり0づつ移動しなさい
if(idouX<0.1){ //もしもidouXが0.1より小さかったら
idouX=3; //idouXを3に戻す
_x=0; //X座標を0にする
}
}
変数idouXの変動を分かりやすく説明すると、こんな感じです。
初期idouX・・・3(フレームが再生されるたびに、この数字に0.9を掛けていく)
↓
3*0.9=2.7
2.7*0.9=2.43
2.43*0.9=2.187
2.187*0.9=1.97
1.97*0.9=1.8
・
・
・
・
・
というように徐々に0に近づいて行くわけです。
ただし、いくら掛けても0にはならないので、最後0.1より小さくなったら元に戻す処理をしてあげなくてはいけません。
ただ移動するだけでも、色んな方法があると思います。
この他の方法も試していただければ、より勉強にはなると思います。
例えば、サンプルではインスタンスを1つしか動かしてないけど、複数のインスタンスを同時に動かすとか。
この場合、同じものをステージに複数配置する方法もありますが、それじゃスマートじゃない。
変数idouX、idouYをどうにか共有できないかな?なんて考えてみたり。
トラックバック(0)
このブログ記事を参照しているブログ一覧: 003[移動(イージング)]
このブログ記事に対するトラックバックURL: http://makuadmin.coresv.com/mt-tb.cgi/23