あなたが今、抱えてる悩み カンドウコーポレーションが解決します お悩み一掃!!
STAFF INFORMATION

フラッシュ・ラボ マウス追尾オブジェクト処理 [柳谷 武]

スタッフ紹介 >> 柳谷 武 >> フラッシュ・ラボ >> マウス追尾オブジェクト処理
<< フラッシュ・ラボに戻る
[マウス追尾オブジェクト処理01-02]follow
たった2行のスクリプトで!!
マウスの座標と、オブジェクトの現在の座標とを比較して、オブジェクトを移動する処理です。
マウス操作
マウス追尾オブジェクト処理01

マウス座標を目標地点と考えて、現在座標目標座標との間の距離を割り算したぶんだけ進んでいく処理です。

[ スクリプト - ツクリカタ ]
"pointer"というインスタンス名を付けたムービークリップオブジェクトを作る。
gotoAndPlay( _currentframe - 1 )または、
onClipEvent( enterFrame ){}を使ってループ処理を作る。

ループ処理の中に下の2行を書いたらできあがりです。
pointer._x += (_xmouse - pointer._x) / 5
pointer._y += (_ymouse - pointer._y) / 5

[ スクリプトの意味 ]
ループするたびに毎回今のポインターとマウスの座標の差を計算してます。
ポインターとマウスが離れてるほど近づくスピードが速いです。

[ 例 ]
差が100のときは、100/5で20pixel進むんですが。
差が20のときは、20/5で4pixelしか進まない計算です。

マウス操作
マウス追尾オブジェクト処理02
追尾するオブジェクトをビヨンビヨンさせる場合。

基本は [ 処理01 ]といっしょですが、現在座標目標座標との距離から移動距離を計算する部分を変更します。

[ スクリプト - ツクリカタ ]
ループ処理の中に下の4行を書く。
xSub = (xSub * 0.8) + (_xmouse - pointer._x) / 5
ySub = (ySub * 0.8) + (_ymouse - pointer._y) / 5
pointer._x += xSub
pointer._y += ySub

[ スクリプトの意味 ]
xSub
1回のループで進む距離 (x座標)

(xSub * 0.8)
さっき移動した距離の80%余分に進む(x座標)

(_xmouse - pointer._x)
今のポインターの座標とマウスの座標との差(x座標)

(_xmouse - pointer._x) / 5
今のポインターとマウスの座標の差の20%(5÷100)

<< フラッシュ・ラボに戻る