2016-05-30 31 views
-2
public function keyD(p:KeyboardEvent):void 
{ 
    trace(p.keyCode); 
    //a=65 d=68 w=87 s=83 
    //to program the 4 arrow keys 
    if (p.keyCode==Keyboard.LEFT) 
    { 
     vx=-5; 
    } 
    else if (p.keyCode==Keyboard.RIGHT) 
    { 
     vx=5; 
    } 
    else if (p.keyCode==Keyboard.UP) 
    { 
     vy=-5; 
    } 
    else if (p.keyCode==Keyboard.DOWN) 
    { 
     vy=5; 
    } 
} 
public function keyU(e:KeyboardEvent):void 
{ 
    //we want to program the 4 arrow keys 
    if (p.keyCode==Keyboard.LEFT) //Make player move left 
    { 
     vx=0; 
    } 
    else if (p.keyCode==Keyboard.RIGHT) //Make player move right 
    { 
     vx=0; 
    } 
    else if (p.keyCode==Keyboard.UP) //Make player move up 
    { 
     vy=0; 
    } 
    else if (p.keyCode==Keyboard.DOWN) //Make player move down 
    { 
     vy=0; 
    } 
} 



public function gameLoop(e:Event):void 
{ 
    //this function is called 24 times each second 

    p.x+=vx;//move the player horizontally 
    p.y+=vy;//move the player vertically 

回答

4

keyU中的參數名爲e而不是p,因此您的switch-case運算符將null與某些值進行比較。將ep或全部p s替換爲e s。

+0

哦謝謝我甚至沒有意識到! – aCrainic

+0

如果這解決了您的問題,您可以通過單擊綠色複選標記將答案標記爲正確。謝謝。 –