物体跟随鼠标移动并旋转角度
/*
库中有元件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;
}
}
}
浙公网安备 33010602011771号