我正在製作一個簡單的鼠標控制遊戲。基本上,如果玩家將光標移動到角色的右側,他會向右移動,反之亦然。但是如果你停止移動鼠標,Flash會忽略一個停止該角色的狀態,直到你再次移動鼠標爲止,所以這個人只是繼續向相同的方向移動,直到你移動光標。爲什麼如果mouseX和玩家的位置每幀更新都會發生這種情況?下面是輸入條件:AS3:鼠標將不會更新,直到移動鼠標
stage.addEventListener(MouseEvent.MOUSE_MOVE, CTRLupdateMousePosition)
private function CTRLupdateMousePosition(e:Event):void
{
if (mouseX > shaman_legs.x-2 - shaman_legs.width/2 && mouseX < shaman_legs.x+2 + shaman_legs.width/2) {
CTRLleftButtonDown = false
CTRLrightButtonDown = false
} else if (mouseX < shaman_legs.x - shaman_legs.width/2 && GlobalVariableLibrary.COREgamePaused == false) {
CTRLleftButtonDown = true
CTRLrightButtonDown = false
} else if (mouseX > shaman_legs.x + shaman_legs.width/2 && GlobalVariableLibrary.COREgamePaused == false) {
CTRLleftButtonDown = false
CTRLrightButtonDown = true
}
}
這裏是響應通過移動角色和播放動畫播放器的輸入代碼:
addEventListener(Event.ENTER_FRAME, playerControl)
private function playerControl(e:Event):void {
trace("LeftDown:"+CTRLleftButtonDown, "RightDown:"+CTRLrightButtonDown)
boxSensor.x = shaman_legs.x
soulCatcher.x = shaman_legs.x
if (CTRLleftButtonDown == false && CTRLrightButtonDown == false && GlobalVariableLibrary.COREgamePaused == false) {
shaman_legs.gotoAndPlay("idle")
shaman_armsDown.gotoAndPlay("idle")
} else if (CTRLleftButtonDown && shaman_legs.x > 40 && GlobalVariableLibrary.COREgamePaused == false) {
shaman_legs.gotoAndPlay("walkLeft")
shaman_armsDown.gotoAndPlay("walk")
shaman_legs.x -= GlobalVariableLibrary.CHARspeed
shaman_mask.x -= GlobalVariableLibrary.CHARspeed
shaman_armsDown.x -= GlobalVariableLibrary.CHARspeed
shaman_armsUp.x -= GlobalVariableLibrary.CHARspeed
} else if (CTRLrightButtonDown && shaman_legs.x < 760 && GlobalVariableLibrary.COREgamePaused == false) {
shaman_legs.gotoAndPlay("walkRight")
shaman_armsDown.gotoAndPlay("walk")
shaman_legs.x += GlobalVariableLibrary.CHARspeed
shaman_mask.x += GlobalVariableLibrary.CHARspeed
shaman_armsDown.x += GlobalVariableLibrary.CHARspeed
shaman_armsUp.x += GlobalVariableLibrary.CHARspeed
}
}
您不提供足夠的信息。您發佈的代碼位於哪裏?你說什麼條件會被忽略?用調試程序遍歷代碼的結果是什麼?發生了什麼?你期望發生什麼? – null
這是輸入幀事件偵聽器的功能。我的意思是第一個(光標位於播放器上的那一刻),它應該阻止角色的移動和他的動畫。我試圖追蹤那些布爾人,並且當滿足第一個條件時他們都不會切換爲假。我是否也應該發佈移動代碼? –
請修改您的問題以包含所有信息。它仍然非常模糊。輸入幀監聽器的什麼對象?是的,請張貼移動代碼。 – null