カーソルの回りを楕円で回る

(section05-02 座標移動のアニメーションから抜粋)

 次のサンプルはマウスカーソルを回りを楕円形を描いてトンボのインスタンスが飛びます。トンボは進行方向を向くように回転に合わせて向きを変えます。マウスカーソルを動かすとトンボはゆっくり追いかけます。
 トンボが回る軌道を楕円形にするには、15〜16行目のようにX軸方向の振幅をY軸方向の振幅の2倍にします。これで横方向に2倍の長さの楕円になります。マウスカーソルの座標を楕円の中心にすればマウスカーソルの回りをトンボが回ります。このとき10〜11行目のようにマウスカーソルの座標にイージングで近づくようにすれば、マウスカーソルをゆっくり追いかける楕円軌道になります。
 トンボの向きを回転の進行方向に合わせているのは18行目です。トンボのインスタンスのrotationの値を周回の回転角度と同じにすれば向きが合いますが、時計回りなのでトンボを下向きに作っておく必要があります。

#このサンプルは「AS3入門ノート2」にもあるサンプルですが、好例なので取り上げました(説明は書き直してます)。

fig05-02-10_shiji.jpgswfを試す
var deg:uint = 0;
var r:uint = 90;
var tmpX:Number = stage.mouseX;
var tmpY:Number = stage.mouseY;
//イベントリスナーの設定	
tombo_mc.addEventListener(Event.ENTER_FRAME, roundCursor);
//フレーム再生イベントのリスナー関数
function roundCursor(eventObj:Event):void {
	//マウスカーソルの位置に近づく
	tmpX += (stage.mouseX-tmpX)/10;
	tmpY += (stage.mouseY-tmpY)/10;
	//15度ずつ回転する
	deg = (deg+15)%360;
	//(tmpX,tmpY)を中心点にして時計回りに楕円で回る
	tombo_mc.x = 2*r*Math.cos(deg*Math.PI/180) + tmpX;
	tombo_mc.y = r*Math.sin(deg*Math.PI/180) + tmpY;
	//回転に合わせて向きを変える
	tombo_mc.rotation = deg;
}
まったく新しいAS3の世界!
694a.jpg
Adobe Flash CS4
詳細!ActionScript3.0入門ノート[完全改訂版](CD-ROM付)

楽しいActionScript。
新たなる1歩へと踏み出しましょう。
■内容は?→ 目次を見る
■評判は?→ 書評を読む
この本を書いたわけ

このブログ記事について

このページは、oshigeが2009年7月 4日 00:29に書いたブログ記事です。

ひとつ前のブログ記事は「Twitterもスタート」です。

次のブログ記事は「サイン波を描くアニメーション」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

あわせて読みたいブログパーツ