物体跟随鼠标移动并旋转角度

/*
库中有元件Ball标识为Ball
假如想让物体以每帧3像素的速度向45度的位置移动,

这里要用到三角学。 已知角度为45度,斜边长为3像素,

就可以应用 Math.cos 和 Math.sin 求出 vx 和 vy 的长度。

 角的邻边长度为 vx,因为角的余弦值等于邻边/斜边。也可以说,

邻边等于角的余弦值乘以斜边。同样,对边长为 vy 的边,

因为角的正弦值等于对边/斜边,或是对边等于正弦乘以斜边。

实际应用的代码:

vx = Math.cos(angle) * speed;

vy = Math.sin(angle) * speed;
*/

package 

{

	import flash.display.Sprite;

	import flash.events.Event;

	public class VelocityAngle extends Sprite

	{

		private var ball:Ball;

		private var speed:Number;



		public function VelocityAngle()

		{

			init();

		}

		private function init():void

		{

			speed = 3;

			ball = new Ball  ;

			addChild(ball);

			ball.x = 50;

			ball.y = 50;

			addEventListener(Event.ENTER_FRAME,onEnter);

		}

		private function onEnter(e:Event):void

		{

			var dx:Number = mouseX - ball.x;

			var dy:Number = mouseY - ball.y;

			var radians:Number = Math.atan2(dy,dx);

			ball.rotation = radians * 180 / Math.PI;

			var vx:Number = Math.cos(radians) * speed;

			var vy:Number = Math.sin(radians) * speed;

			trace(ball.rotation);

			ball.x +=  vx;

			ball.y +=  vy;

		}

	}

}

你可能感兴趣的:(移动)