AS3를 처음 사용하고이 게임 메카닉을 올바르게 작동 시키려고합니다. 제가해야할 일은 각 유성이 화면에 나타나 자마자 왼쪽으로 움직 이도록하는 것입니다, 그러나 그들은 전혀 움직이지 않습니다. 누구든지이 문제를 해결하는 방법을 알고 있다면 크게 감사하겠습니다! 코드를 스테이지 코드와 객체 (유성) 클래스 코드의 두 부분으로 나누었습니다.AS3 개체 이동
아래 코드는 무대에 있습니다.
import flash.events.MouseEvent;
import flash.events.Event;
var mcShip:Ship;
var meteor:Meteor;
var uiTimer:uint = 0;
var aMeteors:Array = new Array();
function InitializeGame():void
{
mcShip= new Ship();
mcShip.Initialize(100,200);
stage.addChild(mcShip);
stage.addEventListener(MouseEvent.MOUSE_MOVE, MouseInput);
stage.addEventListener(Event.ENTER_FRAME,GenerateMeteors);
}
function MouseInput(me_:MouseEvent):void
{
mcShip.Movement(me_);
}
function GenerateMeteors(eGenerate:Event):void
{
if (0 == ++uiTimer%10)
{
meteor= new Meteor();
aMeteors.push(meteor);
meteor.Initialize(550, 390, 20);
stage.addChild(meteor);
trace (aMeteors);
}
}
InitializeGame();
아래는 객체 (유성) 코드입니다.
import flash.events.Event;
var speed:int;
var aMeteors:Array = new Array();
function Initialize(iPosX_:int, iPosY_:int, iSpeed_:int):void
{
x = iPosX_;
y = Math.round(Math.random()* iPosY_)
speed = Math.round(Math.random() * iSpeed_);
var timer:Timer = new Timer(12)
timer.addEventListener(TimerEvent.TIMER,Update);
timer.start();
}
function Update(ev_:Event):void
{
for (var a:int=0; a < aMeteors.length; a++)
{
aMeteors[a].x -= 1 * speed;
}
}
기본적으로 나는 유성을 x 축에서 왼쪽으로 이동하려고합니다. 나는 제대로 움직이지 못하게하는 많은 문제가 있다고 확신하지만, 그것을 이해할 수는 없다. 사전에 모든 도움을 주셔서 감사합니다! 모든
감사합니다, Trex. 나는 여전히 문제를 해결하려고 노력하고 있지만, 당신의 반응은 나를 도와주고 있습니다! – Eindigen
문제의 일부를 수정했습니다, Trex,하지만 유성이 왼쪽으로 이동하는 데 문제가있어 원래 게시물을 업데이트했습니다! 도와 줘서 고마워. – Eindigen
1 *은 아마도 중복되지만 운동 코드가 제대로 작동하는 것처럼 보입니다. 코드를 실행할 때 실제로 어떤 일이 일어 났는지 말해 줄 수 있습니까? 유성이 나타나고 여전히 머물러 있니? – Trex