所以我非常喜欢编程,所以请耐心等待。
我有一个Neighbor类。在另一个类中,我实例化了3个独立的Neighbor类实例,存储在一个数组中(collisionArray_Neighbour)。 Neighbor类中有一个函数(randomisePosition)。
问题是:randomisePosition()函数仅由一个Neighbor实例调用。即使我使用数组迭代实例,也要在每个实例上调用Neighbor update()函数。此更新函数调用randomisePosition()函数。
这可能是由于数组,好像我从数组中删除一个调用randomisePosition()的实例,通过与游戏中的实例冲突,另一个实例,但仍然只有一个数组,调用函数randomisePosition。
这是将实例添加到数组的代码:
public function populateNeighbourCollisionArray()
{
for (var iN:int = 0; iN < enemyMaxAmount; iN++)
{
if (collisionArray_Neighbour.length < 3)
{
collisionArray_Neighbour.push(new Neighbour(this));
level01.addChild(collisionArray_Neighbour[collisionArray_Neighbour.length - 1]);
}
}
}
这将调用每个实例的更新功能:
for (var i = 0; i < collisionArray_Neighbour.length; i++)
{
collisionArray_Neighbour[i].update();
}
Neighbor class中的更新函数:
public function update()
{
if (animationComplete)
{
trace("randomise position...");
randomisePosition();
gotoAndPlay("startFading");
//startTimer();
}
}
randomisePosition函数,似乎只在一个Neighbor实例上调用:
private function randomisePosition()
{
trace("position randomised");
var randomX = Math.ceil(randomRange(0, 100));
var randomY = Math.ceil(randomRange(50, 400));
this.x = parentClassRef.player.x + randomX;
this.y = randomY;
}