2009年10月27日

お魚を追いかけて〜♪

開発部だより 第72回


どうもお久しぶりです。
「振り返れば子猫がいる」です。うちの猫もすっかり大人の猫になり、朝の5時には窓の側で「出してー」と鳴き続け、7時には「入れてー」と鳴き続けるとってもかわいい猫に成長しました。お返しに気持ち良さそうに寝ているのを見つけると、愛のほおずりを必ずお見舞いしてやります。

さて私もそろそろ入社して一年近くが経ちました。やっと仕事にも慣れてきて最近覚えたFlexやColdFusionにも少しずつ愛着がわいてきました。
ぐぁ、やっぱりデータのやり取りの作業ばかりでは少しさびしい今日この頃。
そこで簡単なアニメーションを作ってみました。
マウスカーソルのように動く魚の骨をネコ?が追いかけて行くというものです。

とりあえず完成がこちら。
で、動きの肝の部分の解説です。
まずはお魚(hone_mc)の動きから。

Mouse.hide();
hone_mc.addEventListener(Event.ENTER_FRAME ,honeMoveHandler);

function honeMoveHandler(e:Event):void{
hone_mc.x = stage.mouseX;
hone_mc.y = stage.mouseY;
}


これはそのまんまですね。Mouse.hide()でカーソルを見えなくして、常にマウスの座標とお魚の座標を合わせる事によって、お魚がマウスカーソルのようになります。

次にダッシュしてちかづい追いかけてくるネコ(neko_mc)の動きです。
やっている事を要約すると、
@ マウスの座標とネコの座標の距離を計算する。
A 計算した距離を一定の数で割った分だけX,Y座標を近づける。
となります。

なんだかAの説明がよく分からないですが、例を挙げると、
距離が
1000の時は10で割ると100になり、100距離を近づける。
900の時は10で割ると90になり、90距離を近づける。
810の時は10で割ると81になり、81距離を近づける。
と、離れている距離が大きいほど、近づくX,Y座標も大きくなりダッシュして見えるというわけです。ソースにするとこんな感じです。

neko_mc.addEventListener(Event.ENTER_FRAME,nekoMoveHandler);

function nekoMoveHandler(e:Event):void {
var speed:uint = 10;
neko_mc.x += (stage.mouseX - neko_mc.x)/speed;
neko_mc.y += (stage.mouseY - neko_mc.y)/speed;
}


ここでspeedの値を大きくすると動きがゆっくりになり、小さくすると動きが速くなります。
いかがでしたか?
こんなんでも少しでも皆様のお役に立てれば幸いです。
posted by 振り返れば子猫がいる at 17:18
開発部だより | コメント(0) | トラックバック(0)
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。