안녕하세요. 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을 endOfLine이라는 이름의 변수 1 개로 변경하여 오른쪽, 위, 왼쪽, 아래 각각 (다시 반복)에 해당하는 4 개의 상태 (0, 1, 2 및 3)를 만들었습니다. 매우 유용한 조언. Thomas 선생님, 고마워요! – Erasmus