我想停止影片剪輯移動,當它撞牆(另一個動畫片段)時。 下面的例子工作,但在碰撞後,movieclip'阻止'左邊的所有動作... 我的問題是,這是一個好方法,爲什麼它不能正常工作?AS3停止穿過牆壁的角色
這段代碼會出錯,但我正在學習。 現在使用leftArrow鍵的示例;
變量來檢查的關鍵,如果它擊中牆壁,如果它的運動或不運動:
var leftArrow:Boolean;
var speed:int = 10;
var hitting:Boolean;
var ismoving:Boolean;
的鑰匙/移動事件偵聽器和檢測碰撞:
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
stage.addEventListener(KeyboardEvent.KEY_UP, keyReleased);
stage.addEventListener(Event.ENTER_FRAME, walking);
stage.addEventListener(Event.ENTER_FRAME, detectHit);
檢測碰撞功能:
function detectHit(e:Event) :void
{
if(char.hitTestObject(bounds))
{
hitting = true;
}
}
功能左箭頭鍵:
function keyPressed(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.LEFT)
{
leftArrow = true;
}
}
function keyReleased(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.LEFT)
{
leftArrow = false;
}
}
而且它不工作的原因可能是在這裏,但我不明白爲什麼不:如果hitting
是假的
function walking(event:Event):void {
if (rightArrow) {
char.x += speed;
}
if (leftArrow && ! hitting) {
char.x -= speed;
}
else
{
ismoving = false
}
或者只是'hitting = char.hitTestObject(bounds)' – LiraNuna
是的,那會更好。 – taskinoor
@taskinoor感謝您的解釋並抽出時間回答 – Opoe