AS3如何使这些对象无休止地循环?

时间:2015-01-14 15:12:33

标签: actionscript-3 loops actionscript

这是我的代码到目前为止,我正在尝试创建一个自上而下的汽车游戏,这是我到目前为止的代码,我目前正试图让汽车循环但我正在努力寻找办法它,请尝试帮我解决问题或指出我正确的方向,如果你能取悦并提前感谢你

import flashx.textLayout.utils.CharacterUtil;

var result:Number = Math.random() * 100
var randomX:Number = Math.random() * stage.stageWidth
var background = new Background;
var char = new Char();
var car1 = new Car1();
var car2 = new Car2();
var car3 = new Car3();
var car4 = new Car4();


car1.x = Math.random()* stage.stageWidth;
car2.x = Math.random()* stage.stageWidth;
car3.x = Math.random()* stage.stageWidth;
car4.x = Math.random()* stage.stageWidth;
background.x = 200;
char.x = 700/2;

car1.y = -0;
car2.y = -150;
car3.y = -300;
car4.y = -450;
background.y = 200;
char.y = 450;

addChild(background);
addChild(char);
addChild(car1);
addChild(car2);
addChild(car3);
addChild(car4);

char.gotoAndStop("car");

addEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);

function fl_EnterFrameHandler(event:Event):void
{
    car1.y +=12;
    car2.y +=12;
    car3.y +=12;
    car4.y +=12;
}


stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_PressKeyToMove);

function fl_PressKeyToMove(event:KeyboardEvent):void
{
switch (event.keyCode)
{
case Keyboard.RIGHT:
{
char.x += 15;
if (char.hitTestObject(barrier1))
{
char.x -=15 ;
}
break;
}
case Keyboard.LEFT:
{
char.x -= 15;
if (char.hitTestObject(barrier2))
{
char.x +=15 ;
}
break;
}
}
}
stage.addEventListener(Event.ENTER_FRAME, detectCollision);
function detectCollision(event:Event)  {

       if(char.hitTestObject(car1))
       {
       char.gotoAndStop("boom");
       }
       if(char.hitTestObject(car2))
       {
       char.gotoAndStop("boom");
       }
       if(char.hitTestObject(car3))
       {
       char.gotoAndStop("boom");
       }
       if(char.hitTestObject(car4))
       {
       char.gotoAndStop("boom");
       }

}

1 个答案:

答案 0 :(得分:0)

如果您试图让汽车重新定位到屏幕顶部,就像@onekidney猜测的那样,您可以使用%运算符轻松完成:

function fl_EnterFrameHandler(event:Event):void
{
    car1.y = (car1.y + 12) % stage.stageHeight;
    car2.y = (car2.y + 12) % stage.stageHeight;
    car3.y = (car3.y + 12) % stage.stageHeight;
    car4.y = (car4.y + 12) % stage.stageHeight;
}

您可以在documentation

中详细了解模运算符