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