private var hitArray:Array = new Array [ 10, 20, 30, 40, 50, 60];
您好。
我在数组中存储了多个数字,看起来flash不喜欢这个,我猜我告诉数组它将有10个空格,20个空格等......或者数组需要理解它是数据类型的变量。
所以我的下一个想法是使用这个
将一百个数字存储到数组中 private var hitArray:Array = new Array;
public function Main()
{
for (var i:int = 0; 0 < 100; i++)
{
hitArray.push(i);
}
//iniaite health
hitCounter = 0;
resetPos = new Point(x, y);
//iniation players
_character = new player();
timmy = new SirTimmy();
caroline = new princess();
goblinCanMove = true;
stage.addEventListener(Event.ENTER_FRAME, mainGameLoop)
}
通过这样做,我将能够实现更好的hitTestPoint方法!
private function enemyCollisionGoblin():void
{
//trace(aKnifeArray.length);
//knive proccess
for (var o:int = 0; o < aKnifeArray.length; o++)
{
var currentKnife:Knife= aKnifeArray[o];
if (currentKnife.x < 0)
{
//trace ('backmissile gone lol');
aKnifeArray.splice(o, 1);
currentKnife.removeKnife();
}
//if (_character.x < redGoblin.x && _character.x > redGoblin.x - 600)
for (var p:int = 0; p < hitArray.length; p++)
{
var number:Number = hitArray[p];
if (currentKnife.hitTestPoint(_character.x + number, _character.y - number, true)) //|| currentKnife.hitTestPoint(_character.x - 50, _character.y - 60, true))
{
trace("hit");
}
}
}
}
我面临的问题是flash不喜欢主构造函数中的for循环,尽管它是一个启动的。
如果变量i大于100,它应该突破for循环,但不是。
我的问题是,我如何在数组中存储数字,因此我可以在命中测试点中使用该数组。
抱歉,我知道这很简单,但我目前正在开发和学习!
建议非常感谢!
答案 0 :(得分:2)
您获得了无限循环,因为您的循环条件为0 < 100
而不是i < 100
。
for (var i:int = 0; 0 < 100; i++)
初始化数组的第一种方法不正确。它应该是
private var hitArray:Array = new Array (10, 20, 30, 40, 50, 60);
你的括号错了。使用Array构造函数创建数组时必须小心,因为:
var awd:Array = new Array (10);
以上将创建一个容量为10的空数组。
var awd:Array = [10];
上面将创建一个数字为10的单个数组。这通常是创建数组的方法,因为它快速而简单。
var awd:Array = [10, 1, 2, 3, 4, 5];