寫遊戲的人比較會用到這方法,最主要是在做鳥瞰視角遊戲的時候會用到

例如:畫面中央有個砲塔,砲塔會隨著滑鼠的指標而轉到角度等等

   如下圖,看起來有點寒酸,不過這篇就是要教各位怎麼讓這砲塔隨著滑鼠轉動

砲塔

 

 

我們直接來看程式碼

//==================================================

//首先在場景上,畫一個砲塔,取名字為TestObj

//這樣場景上的簡易佈置就完成了,再來我們開始寫CODE

//下面這句是我個人的工作習慣

//不管是什麼容器,我都喜歡用一個變數記起來,這樣方便以後更改

var nowthis = this ;

//給場景一個ENTER_FRAME的監聽事件
nowthis.addEventListener(Event.ENTER_FRAME,RotationEvent);

function RotationEvent(me:Event):void{   

    //創造兩個POINT,一個紀錄砲塔的座標,一個記錄滑鼠的座標
    var TmpA : Point = new Point(nowthis['TestObj'].x,nowthis['TestObj'].y);
    var TmpB : Point = new Point(nowthis.mouseX,nowthis.mouseY);   

    //將兩個座標傳入計算角度的Function,這樣就算完成了
    nowthis['TestObj'].rotation = PointRotation(TmpA,TmpB);
}

//算兩點之間的角度Function
function PointRotation(PointA,PointB) {
    var Pa = new Point(PointA.x,PointA.y);
    var Pb = new Point(PointB.x,PointB.y);
    var Dx = Pb.x - Pa.x;
    var Dy = Pb.y - Pa.y;
    var DRoation = Math.atan2(Dy,Dx);
    var WRotation = DRoation/Math.PI*180;
    return WRotation;
}

 

//==================================================

效果如下

  
 

//==================================================

FLA為CS3

原始檔

//==================================================

剛開始寫,先寫些簡單的,以後會越來越困難請期待

arrow
arrow
    全站熱搜

    法奇 發表在 痞客邦 留言(1) 人氣()