Arrays AS3-如何正确添加此数组(john)
我不知道如何添加john数组并用它生成hittestobject。 Bal是与此问题无关的另一类。 我试着做约翰[新巴尔] 约翰[k] 尝试了z并将z指定为for循环,但我只会得到z球的位置。 这应该是一款太空入侵者类型的游戏。我想在亨克和“落球”约翰之间做一个命中测试。我不知道如何使用数组,特别是考虑到is应该是定时器触发的 谢谢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
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电源和更干净的代码。
如果你想让游戏更酷,你可以添加使用箭头键的支持