1
我是一名編程初學者,但我正在嘗試製作一款flash RPG類型的遊戲。我在我的遊戲和行走的人(manmc)周圍有障礙。我一直在觀看關於如何製作對象障礙的視頻/閱讀文章,但我似乎無法在沒有錯誤的情況下獲得編碼權限。我試圖讓我的角色在他擊中一棵樹時停下來。該樹編碼爲(treer1_MC)。我只是試圖在下壓時對它進行編碼,但它什麼都不做,導致角色無法走回去。AS3中的對象障礙?
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.display.MovieClip;
import flash.events.Event;
import flash.display.Stage;
manmc.gotoAndStop ("Stand Front Frame");
var rightPressed:Boolean = new Boolean(false);
var leftPressed:Boolean = new Boolean(false);
var upPressed:Boolean = new Boolean(false);
var downPressed:Boolean = new Boolean(false);
var manSpeed:Number = 3;
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
stage.addEventListener(Event.ENTER_FRAME, gameLoop);
function keyDownHandler (keyEvent:KeyboardEvent):void
{
if(keyEvent.keyCode == Keyboard.RIGHT)
{
rightPressed = true;
}
else if(keyEvent.keyCode == Keyboard.LEFT)
{
leftPressed = true;
}
else if(keyEvent.keyCode == Keyboard.UP)
{
upPressed = true;
}
else if(keyEvent.keyCode == Keyboard.DOWN)
{
downPressed = true;
}
}
function keyUpHandler (keyEvent:KeyboardEvent):void
{
if(keyEvent.keyCode == Keyboard.RIGHT)
{
rightPressed = false;
manmc.gotoAndStop("Stand Right Frame");
}
else if(keyEvent.keyCode == Keyboard.LEFT)
{
leftPressed = false;
manmc.gotoAndStop("Stand Left Frame");
}
else if(keyEvent.keyCode == Keyboard.UP)
{
upPressed = false;
manmc.gotoAndStop("Stand Back Frame");
}
else if(keyEvent.keyCode == Keyboard.DOWN)
{
downPressed = false;
manmc.gotoAndStop("Stand Front Frame");
}
}
function gameLoop(loopEvent:Event):void
{
if(rightPressed)
{
if(manmc.x < 1050)
{
manmc.x += manSpeed;
}
manmc.gotoAndStop("Walk Right Frame");
}
else if(leftPressed)
{
if (manmc.x > 145)
{
manmc.x -= manSpeed;
}
manmc.gotoAndStop("Walk Left Frame");
}
else if(downPressed)
{
if(manmc.y < 780)
{
manmc.y += manSpeed;
}
manmc.gotoAndStop("Walk Front Frame");
}
if (manmc.hitTest(treer1_MC))
{
trace("leftHit");
manmc._x += 3;
}
else if(upPressed)
{
if(manmc.y > 145)
{
manmc.y -= manSpeed;
}
manmc.gotoAndStop("Walk Back Frame");
}
}
這是一個教程所說的使用的編碼。有什麼建議麼?
if (manmc.hitTest(treer1_MC))
trace("leftHit");
manmc._x += 3;
仍然給出了一個錯誤:(「TypeError:錯誤#1006:hitTest不是一個函數。 \t在Start_fla :: MainTimeline/gameLoop()」 –
哦,還有一件事情: manmc.hitTest(treer1_MC) 應該是: manmc hitTestObject(treer1_MC) –
太感謝你了! –