0
我試圖在平臺遊戲中給我的角色一個移動機制,在其中按住左鍵然後右邊將導致角色仍然向左移動,但是以較慢的速度移動(即移動速度/ 2)行走(反之亦然):按鍵的順序特定組合保持功能?
public var leftKey:Boolean = false;
public var rightKey:Boolean = false;
public var upKey:Boolean = false;
public var leftFlag:Boolean = false;
function ifKeyDown(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.LEFT && rightKey == false)
{
leftKey = true;
if (event.keyCode == Keyboard.LEFT && event.keyCode == Keyboard.RIGHT)
{
leftFlag = true;
trace("leftFlag true");
}
}
if (event.keyCode == Keyboard.RIGHT && leftKey == false)
{
rightKey = true;
}
}
function ifKeyUp(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.LEFT)
{
leftKey = false;
leftFlag = false;
}
if (event.keyCode == Keyboard.RIGHT)
{
rightKey = false;
}
}
public function ifEnterFrame(event:Event):void
{
if (leftKey == true && leftFlag == false)
{
player1_mc.x -= mainSpeed;
trace("L");
}
if (rightKey == true && leftFlag == false)
{
player1_mc.x += mainSpeed;
trace("R");
}
if (leftKey == true && rightKey == true)
{
if (leftFlag == true)
{
player1_mc.x -= mainSpeed/2;
trace("L + R");
}
else
{
player1_mc.x += mainSpeed/2;
trace("R + L");
}
}
我的輸出應該是這樣的: 我認爲左鍵 大號 大號 大號 大號 我放開左鍵的。然後, 我抱着右鍵 [R [R [R [R 我放開右鍵的。然後, 我按住鼠標,然後還抱着左 大號 [R R + L 大號 [R R + L 我放手的都有。然後, 我抱着左,那麼還可以右鍵 大號 [R R + L 大號 [R R + L
雖然我知道我的痕跡,該leftFlag沒有運行,我花了幾個小時試圖弄清楚爲什麼無濟於事。 :(