2013-10-18 57 views
0

首先,我知道,我仍然使用AS 2,我應該與時間相處,但現在我使用AS2。我在不同的遊戲中進行了編程,但由於某種原因,我無法複製結果,並且意外刪除了其他遊戲。我的問題是我試圖讓玩家做3次不同的攻擊,每次你擊中「A」鍵,但是它所做的只是第一次攻擊。動作2.0組合攻擊使用相同的密鑰

這是我的設置。

我有一個帶有4個關鍵幀的影片剪輯,其中一個關鍵幀有一個空閒的播放器影片剪輯,標記爲「空閒」,一個是步行影片剪輯標記爲「行走」,一個是跳躍播放器影片剪輯,最後,一個攻擊你認爲它被標記爲「攻擊」在我的攻擊影片剪輯中,我有3個攻擊的動畫,每個攻擊的最後一幀有一個停止命令,然後檢查鍵「A」被按下,如果被按下,則它再次播放,這對每一次攻擊都會重複進行。

onClipEvent(enterFrame){ 
var walkspd = 5; 
var sprintspd = 2; 
var gravity = 5; 
var decel = .1; 

//走

if (Key.isDown(Key.RIGHT)){ 
    this.gotoAndStop("walk"); 
    this._xscale = 100 
    this._x += walkspd; 
} 
if (Key.isDown(Key.LEFT)){ 
    this.gotoAndStop("walk"); 
    _xscale = -100; 
    _x -= walkspd; 
} 
else { 
    if(Key.isDown(Key.RIGHT) == false && Key.isDown(Key.LEFT) == false && Key.isDown(65) == false){ 
     this.gotoAndStop("idle"); 
    } 
} 

//攻擊

if (Key.isDown(65)){ 
    gotoAndStop("attack") 
} 

}

我如何得到這個正常工作?

+0

如果您發現有用的答案,請點擊勾號「✅」圖標接受答案。 – Amer

回答

0

如果我正確理解你,你需要在每次按下'A'鍵時顯示一個新的攻擊片段(1的3)......如果這是你的情況,請看這個工作示例(它是CS5 .fla文件,對不起,我不能把它保存在一個較舊的格式,因爲我只安裝了最新版本):

http://www.4shared.com/zip/Z-Adpv_x/KeyMoveExample.html

代碼的固定版本應該是這樣的:

onClipEvent (load) { 
    // Constants : 
    var walkspd:Number = 5; 
    var sprintspd:Number = 2; 
    var gravity:Number = 5; 
    var decel:Number = .1; 
    // Move Keys : 
    var IsLeftKeydown:Boolean = false; 
    var IsRightKeydown:Boolean = false; 
    var IsAKeydown:Boolean = false; 
    // Attack movie : 
    var totalAttacks:Number = 3; 
    var currentAttack:Number = 1; 
    // create the keyListener Object : 
    var keyListener:Object = new Object(); 
    keyListener.onKeyUp = function() 
    { 
     //trace("UP -> Code: " + Key.getCode() + "\tASCII: " + Key.getAscii() + "\tKey: " + chr(Key.getAscii())); 

     // detect when the 'A' key is released to increase current action : 
     if (Key.getCode() == 65) 
     { 
      currentAttack++; 
      if (currentAttack > totalAttacks) 
      { 
       currentAttack = 1; 
      } 
     } 
    }; 
    Key.addListener(keyListener); 
} 
// -------------- 
onClipEvent (enterFrame) { 

    IsLeftKeydown = Key.isDown(Key.LEFT); 
    IsRightKeydown = Key.isDown(Key.RIGHT); 
    IsAKeydown = Key.isDown(65); 

    //attacking 
    if (IsAKeydown) 
    { 
     gotoAndStop("attack"); 
     attack_mc.gotoAndStop(currentAttack); 
    } 
    else 
    { 
     //walking 
     if (IsRightKeydown) 
     { 
      gotoAndStop("walk"); 
      _xscale = 100; 
      _x += walkspd; 
     } 
     else if (IsLeftKeydown) 
     { 
      gotoAndStop("walk"); 
      _xscale = -100; 
      _x -= walkspd; 
     } 
     //idle 
     else 
     { 
      gotoAndStop("idle"); 
     } 
    } 
} 

注意:我假設您的攻擊影片的名稱是'attack_mc',請在之前的代碼中進行更改以滿足您的需求。

希望對你有所幫助。

+0

@Brandon O'Brien與你合作過嗎?告訴我你是否需要任何修改。 – Amer