延伸上一篇砲台跟隨滑鼠轉動的教學

要能發射子彈才是這遊戲的靈魂所在

這一篇就來教大家如何計算子彈的發射方向

========================================

 //首先先做一個子彈的MovieClip

//並在元件庫內,設定連結匯出名稱,如下圖

bandicam 2013-02-08 01-28-09-812  

 

//設定完成後,我們來看CODE

//這是設定子彈的速度

var BulletSpeed:int =20 ;

//監聽一個全景的滑鼠按下事件
nowthis.stage.addEventListener(MouseEvent.MOUSE_DOWN,BulletEvent);


function BulletEvent(me:MouseEvent):void
{

    //當滑鼠按下時,在場景上創造一個子彈
    var BulletObj =new Bullet();

  //設定子彈出現時的起始座標,正常來說應該是要設定在子彈的砲口處

    //但是我想讓範例簡單化,所以這邊就先設定在砲台的座標處
    BulletObj.x=nowthis['TestObj'].x;
    BulletObj.y=nowthis['TestObj'].y;

    //這裡是設定子彈行進的位移速度,分別計算出來並且寫入子彈的屬性內

  //屬性名稱可以自己定
    BulletObj.MoveX=BulletSpeed*Math.cos(nowthis['TestObj'].rotation*Math.PI/180);
    BulletObj.MoveY=BulletSpeed*Math.sin(nowthis['TestObj'].rotation*Math.PI/180);   
    nowthis.addChild(BulletObj);

    //賦予子彈一個ENTER_FRAME的事件
    BulletObj.addEventListener(Event.ENTER_FRAME,BulletMoveEvent);    
}

//下面這方法就是在控制子彈的位移,如果要進階寫擊中敵人的判斷,也是在這個方法內
function BulletMoveEvent(me:Event):void
{
    var tmc = me.currentTarget ;
    tmc.x += tmc.MoveX ;
    tmc.y += tmc.MoveY ;
}

========================================

來看一下效果

 

========================================

FLA格式為CS3

原始檔

========================================

注意事項:

子彈發射出去之後,要寫判斷將子彈移除在場景上

否則會佔用太多效能

========================================

arrow
arrow
    全站熱搜

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