問題:情境上有一個三角形,角度分別為角A,角B,和角C,怎樣才能使角度A的角是跟隨滑鼠的座標變化而變化?
解:利用Math類中Math.atan2求出三角形的註冊點和 滑鼠座標之間的角度值,再加上一個90度的角,那麼三角形就會轉動。
代碼實現:
var fmove:Boolean;//判斷是否進行滑鼠是否點擊了
var MouseX:Number;
var MouseY:Number;
_root.mc.onEnterFrame = function() {
var dx = _xmouse-mc._x;//滑鼠點與mc之間的x軸距離
var dy = _ymouse-mc._y;//滑鼠點與mc之間的y軸距離
var radians = Math.atan2(dy, dx);//求出角度
mc._rotation = radians*180/Math.PI+90;//使三角形物體跟隨滑鼠轉動
};
//這個90角度如果不加的話,三角形角度A就不會跟隨滑鼠的正確轉動。同樣90是可以變換-270度也行。這個要測試一下就知道。
var obj:Object = new Object();
obj.onMouseDown = function() {
MouseX = _root._xmouse;//每按下滑鼠就賦一次值
MouseY = _root._ymouse;
fmove = true;
move();
};
Mouse.addListener(obj);
function move():Void {
if (fmove) {
onEnterFrame = function () {
mc._x += (MouseX-mc._x)/5;
mc._y += (MouseY-mc._y)/5;
}
} else {
fmove = false;//滑鼠不按下去就是變成了假,那麼就不會出現動
}
}
這一個段代碼只要是實現了按下滑鼠,三角形就會去到你按下了滑鼠那一點的位置。
應用:製作RPG的時候,我們點擊滑鼠,讓我們的角色進行轉動等等應用