0
晚上好。我正在研究一個簡單的項目,該項目使用EVENT_FRAME處理程序以矩形方式(右,上,左,下,重複)移動一個符號。這是我的代碼使用ActionScript的矩形移動3
import flash.events.Event;
var moveRate:Number = 20;
var maxX:Number = 500;
var minX:Number = 80;
var maxY:Number = 60;
var minY:Number = 320;
var endOfLineX:int = 0;
var endOfLineY:int = 0;
roboSym.addEventListener(Event.ENTER_FRAME, move1);
roboSym.addEventListener(Event.ENTER_FRAME, move2);
function move1(e:Event):void
{
if (endOfLineX == 0)
{
roboSym.x += moveRate;
if (roboSym.x >= maxX)
{
endOfLineX = 1;
}
}
else if (endOfLineX == 1)
{
roboSym.x -= moveRate;
if (roboSym.x <= minX)
{
endOfLineX = 0;
}
}
}
function move2(e:Event):void
{
if (endOfLineY == 0)
{
roboSym.y -= moveRate;
if (roboSym.y <= maxY)
{
endOfLineY = 1;
}
}
else if (endOfLineY == 1)
{
roboSym.y += moveRate;
if (roboSym.y >= minY)
{
endOfLineY = 0;
}
}
}
事情是,運動保持對角線,而不是直線運動。我知道在我的邏輯中有一個錯誤,但我無法確定它是什麼。
我明白了!我終於明白了。我將endOfLine改爲1個變量,名爲endOfLine,並使其有4個狀態(0,1,2和3),分別對應於右,上,左和下(然後重複)。非常有用的建議。謝謝托馬斯先生! – Erasmus 2012-08-13 20:58:12