Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.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
Arrays AS3-如何正确添加此数组(john)_Arrays_Actionscript 3_Flash_Adobe_Addchild - Fatal编程技术网

Arrays AS3-如何正确添加此数组(john)

Arrays AS3-如何正确添加此数组(john),arrays,actionscript-3,flash,adobe,addchild,Arrays,Actionscript 3,Flash,Adobe,Addchild,我不知道如何添加john数组并用它生成hittestobject。 Bal是与此问题无关的另一类。 我试着做约翰[新巴尔] 约翰[k] 尝试了z并将z指定为for循环,但我只会得到z球的位置。 这应该是一款太空入侵者类型的游戏。我想在亨克和“落球”约翰之间做一个命中测试。我不知道如何使用数组,特别是考虑到is应该是定时器触发的 谢谢 public class Main extends Sprite { public var henk:Sprite = new Sprite(); p

我不知道如何添加john数组并用它生成hittestobject。 Bal是与此问题无关的另一类。 我试着做约翰[新巴尔] 约翰[k] 尝试了z并将z指定为for循环,但我只会得到z球的位置。 这应该是一款太空入侵者类型的游戏。我想在亨克和“落球”约翰之间做一个命中测试。我不知道如何使用数组,特别是考虑到is应该是定时器触发的

谢谢

public class Main extends Sprite

{
   public var henk:Sprite = new Sprite();
   public var level:Timer = new Timer (2000, 0);
   public var valTijd:Number = new Number
   public var i:Number = 2000;
   public var john:Array = new Array(); 
   public var k:Number = 9000;  

   public function Main():void


   {
        henk.graphics.beginFill(0xFF00FF);
        henk.graphics.drawCircle(0, 500, 20);
        henk.graphics.endFill();
        addChild(henk);

        level.addEventListener(TimerEvent.TIMER, up);
        level.start();

        henk.addEventListener(Event.ENTER_FRAME, muis);
        henk.addEventListener(Event.ENTER_FRAME, hit); 


   }

    public function up(e:TimerEvent):void
    {             
        var tijdje:Timer = new Timer( i, 0)
        tijdje.addEventListener(TimerEvent.TIMER, tijdLuisteraar);
        tijdje.start();
         i = i - 250;

    }
       public function muis (e:Event):void
    {
        henk.x = mouseX;
    }






    public function hit (e:Event): void
    {
        if ( henk.hitTestObject(john [k] )) 
         { 
             if (contains(john[k] ))
            {
                removeChild(henk);
                    }

         }

    }



    public function tijdLuisteraar(e:TimerEvent):void
    {



                john.push(new Bal);
                addChild(john[k]);



    }

}

}欢迎来到stackoverflow

这个问题实际上相当简单,我将描述在您描述的情况下您可能希望如何使用数组

在创建新球的部分,您希望将它们附加到数组中,如下所示:

var ball = new Bal();
john.push(ball);
addChild(ball);
显然,这将进入计时器触发功能的内部

其次,您需要一个包含henk的hitTestObject和存储在john数组中的所有球

这将自动检测阵列的大小,以便测试所有元素。当你在john数组中有很多元素时,小心hitTestObject,这会大大降低你的游戏速度

此外,为了反映您的代码,我建议如下:

var ball = new Bal();
john.push(ball);
addChild(ball);
删除公共变量i:Number=2000;和公共变量k:Number=9000;,这些已经没有意义了 使用鼠标事件移动henk对象,而不是ENTER_帧。我想你会发现这是怎么回事。这只会在函数必须执行某项操作时触发该函数,从而减少所需的CPU电源和更干净的代码。 如果你想让游戏更酷,你可以添加使用箭头键的支持