Actionscript 3 要在屏幕上反弹的对象?

Actionscript 3 要在屏幕上反弹的对象?,actionscript-3,flash,actionscript,pong,Actionscript 3,Flash,Actionscript,Pong,我想让5个“汉堡”物体在屏幕上反弹,这样它们就更难拍摄了,这也是我游戏的目标。但是,到目前为止,他们只是排在舞台的顶端,所以这太容易了。我是否需要创建5个单独的对象和5个单独的实例名等 这就是我到目前为止所做的: var firing:Boolean = false; var bullet:Bullet1 = new Bullet1(); stage.addEventListener(KeyboardEvent.KEY_DOWN, keydown); function keydown(e

我想让5个“汉堡”物体在屏幕上反弹,这样它们就更难拍摄了,这也是我游戏的目标。但是,到目前为止,他们只是排在舞台的顶端,所以这太容易了。我是否需要创建5个单独的对象和5个单独的实例名等

这就是我到目前为止所做的:

var firing:Boolean = false;
var bullet:Bullet1 = new Bullet1();


stage.addEventListener(KeyboardEvent.KEY_DOWN, keydown);


function keydown(event:KeyboardEvent):void {
switch(event.keyCode) {
    case Keyboard.LEFT :
    ball.x -= 10;
    break;

    case Keyboard.SPACE :
    if (!firing) {
    fire();
    }
    break;

    case Keyboard.RIGHT :
    ball.x += 10;
    break;

    case Keyboard.UP :
    ball.y -= 10;
    break;

    case Keyboard.DOWN :
    ball.y += 10;
    break;

    default :
    break;
}
}

stage.addEventListener(KeyboardEvent.KEY_DOWN, keydown);




function fire() {
addChild(bullet);
firing = true;
bullet.x = ball.x;
bullet.y = ball.y - 60
;
}
addEventListener(Event.ENTER_FRAME, movestuff);
function movestuff(event:Event):void {
if (firing) {
    bullet.y -= 20;
    if (bullet.y < 0) {
        firing = false;
        removeChild(bullet);

}
    }
}

var numBurger:Number = 5;
var array:Array = new Array();
for (var i:uint = 0; i<numBurger; i++) {
var burger:Burger = new Burger();
array.push(burger);
addChild(burger);
burger.x = 100 + 100*i;
burger.y = 50;


}
 addEventListener(Event.ENTER_FRAME, checkCollision);
function checkCollision(event:Event)
{
for (var i:uint=0; i<array.length; i++)
{
 if (array[i].hitTestObject(bullet))

 {

 removeChild(array[i]);
  array.splice(i,1);
 return;
}
}


 }
var触发:布尔值=false;
变量bullet:Bullet1=新的Bullet1();
stage.addEventListener(KeyboardEvent.KEY_DOWN,keydown);
功能键关闭(事件:KeyboardEvent):无效{
开关(event.keyCode){
case键盘。左:
ball.x-=10;
打破
case KEYBORD.SPACE:
如果(!开火){
火();
}
打破
case.RIGHT:
球x+=10;
打破
case Keyboard.UP:
ball.y-=10;
打破
case Keyboard.DOWN:
球y+=10;
打破
违约:
打破
}
}
stage.addEventListener(KeyboardEvent.KEY_DOWN,keydown);
函数fire(){
addChild(子弹);
发射=真;
bullet.x=ball.x;
bullet.y=ball.y-60
;
}
addEventListener(Event.ENTER_FRAME,movestuff);
函数movestuff(事件:事件):void{
如果(发射){
bullet.y-=20;
如果(项目符号y<0){
发射=假;
移除儿童(子弹);
}
}
}
var Numberger:数字=5;
变量数组:数组=新数组();

对于(var i:uint=0;iNo),如果使用循环为每个汉堡创建随机的x和y位置,则不必单独创建每个电影剪辑。还可以使用Math.random()为每个汉堡提供随机的速度和方向。在下面的代码中,这些值保存在“方向”中数组。此代码创建五个“Burger”类电影剪辑,并将它们放置在屏幕上的随机点上。此代码还为每个电影剪辑创建随机速度和方向:

import flash.events.Event;

function find_random(max,min){
    return Math.round(min+(max-min)*Math.random());
}

var ary:Array = [];
var direction_ary:Array = [];
for(var i:uint=0;i<5;i++){
    ary[i]=new Burger();
    ary[i].name="burger"+(i);
    ary[i].x=find_random(stage.stageWidth-ary[i].width,ary[i].width);
    ary[i].y=find_random(stage.stageHeight-ary[i].height,ary[i].height);
    addChild(ary[i]);
    direction_ary[i]=[find_random(5,-5),find_random(5,-5)];
    for(var e:uint=0;e<100;e++){
        if(direction_ary[i][0]==0||direction_ary[i][1]==0){
            direction_ary[i]=[find_random(5,-5),find_random(5,-5)];
        }else{
            break;
        }
    }
}

stage.addEventListener(Event.ENTER_FRAME,update_burgers);
function update_burgers(e:Event){

    for(var i:uint=0;i<5;i++){
        if (ary[i].x>stage.stageWidth||ary[i].x<0){
            direction_ary[i][0]*=-1;
        }
        if (ary[i].y>stage.stageHeight||ary[i].y<0){
            direction_ary[i][1]*=-1;
        }
        ary[i].x+=direction_ary[i][0];
        ary[i].y+=direction_ary[i][1];
    }



}
导入flash.events.Event;
函数查找_随机(最大值、最小值){
返回Math.round(min+(max-min)*Math.random());
}
变量ary:Array=[];
变量方向:数组=[];

对于(var i:uint=0;iWell,你是在要求有人为你编写整个项目。我不打算这么做,但我可以向你指出一个示例项目,它是这样做的:我没有意识到这是一项如此巨大的工作。感谢你的帮助!实际上,该示例使用了“现实”物理,因此该项目对你来说可能有点过分,但你可能会发现一些有用的代码无电台