Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 AS3在模式中产生敌人_Actionscript 3_Flash - Fatal编程技术网

Actionscript 3 AS3在模式中产生敌人

Actionscript 3 AS3在模式中产生敌人,actionscript-3,flash,Actionscript 3,Flash,我正在用flash制作一个游戏,我有一个我无法解决的问题:S 假设敌人从左到右繁殖,假设我们有3种类型的敌人 现在我只写了一个for循环,生成每种类型的敌人数量,并将它们放置在垂直刻度上的随机位置(Math.random()*stage.stageWidth) 现在有时会发生这样的情况:如果你重新启动游戏,敌人之间的交叉加上波浪就不一样了 我在想一种方法,制作一个像电影唇一样的电子容器,把敌人放在队形或模式中,然后控制他们 问题是,我的敌人类构造函数使用了引用stage和speed等参数,如果我

我正在用flash制作一个游戏,我有一个我无法解决的问题:S

假设敌人从左到右繁殖,假设我们有3种类型的敌人

现在我只写了一个for循环,生成每种类型的敌人数量,并将它们放置在垂直刻度上的随机位置(Math.random()*stage.stageWidth)

现在有时会发生这样的情况:如果你重新启动游戏,敌人之间的交叉加上波浪就不一样了

我在想一种方法,制作一个像电影唇一样的电子容器,把敌人放在队形或模式中,然后控制他们

问题是,我的敌人类构造函数使用了引用stage和speed等参数,如果我只是将对象放到movieclip中,就会出现错误,因为此时我无法定义stage

有没有人知道如何利用模式制造敌人的浪潮

这是敌人的构造师:

public function Enemy(stageRef:Stage, firerate:Number=1000, speed:Number=1) {
正如你所见,它需要3个参数,但当在EnemContainer movieclip中删除敌人的movieclip时,我有一个错误,因为你无法定义阶段

此外,我也不确定制作一部带有敌人图案的大型电影是否是正确的方法


另一件事是我不同的敌人类型在一部电影里,不同画面上的敌人,如果我把它们放在一部电影里,我也无法控制它。没关系,我认为我找到了正确的方法

问题是我把敌人的目标添加到了EnemyContainer上

现在我只需要添加一些虚拟MovieClip并使用for循环来迭代Enemocontainer的所有子元素,并使用子元素的位置创建敌人

像这样:

public function createEnemyFromContainer():void {
        enemyContainer = new EnemyContainer();
        //stage.addChild(enemyContainer);
        for (var i=0; i<enemyContainer.numChildren; i++) {
            var _tempEnemy_mc:Enemy = new Enemy(stage,1000,0.2+Math.random()*0.3);;

            stage.addChild(_tempEnemy_mc);

            _tempEnemy_mc.x = enemyContainer.getChildAt(i).x;
            _tempEnemy_mc.y = enemyContainer.getChildAt(i).y;
            _tempEnemy_mc.gotoAndStop("tank");
            _tempEnemy_mc.enemyCanon.gotoAndStop("tank");

            enemyObjectsArray.push(_tempEnemy_mc);
        }
    }
公共函数createEnemyFromContainer():void{
enemyContainer=新的enemyContainer();
//阶段。添加儿童(enemyContainer);

对于(var i=0;iIt不清楚您的问题是什么?您是否有错误?如果有,请发布一些代码。就您所采取的方法而言,我认为它可能有效,但您在过程中遇到的问题与最初产生敌人的问题并不真的相关。如果您想要模式,您可以通过编程方式进行操作-您只需要找出at最适合你的游戏。至于阶段,在你通过它之前确保它可用。在前几行代码中应该有:this.addEventListener(Event.ADDED_TO_stage,this.ready);