每天學一點flash(50) 反餘切的應用

來源:互聯網
上載者:User

 問題:情境上有一個三角形,角度分別為角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的時候,我們點擊滑鼠,讓我們的角色進行轉動等等應用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.