我有一个MovieClip
导出到 ActionScript 的名为smallGainPoints
. 我想要做的是MovieClip
在舞台上以线性或对角线路径创建多个实例。完成此操作后,我希望hitTestObject
在 Points 数组和播放器之间进行。这些点被添加到我希望它们成为的阶段,但 HitTest 不会启动。
这是我设置功能的方式:
这个函数被添加到我的 Gameloop 中,它是从一个 onEnterFrame 处理程序调用的:
private function checkPlayerHitPoints():void
{
for (var j:int = 0; j < aPointsArray.length; j++)
{
//get current points in j loop
var currentPoints:smallGainPoints = aPointsArray[j];
//test if player is hitting current point
if (player.hitTestObject(currentPoints))
{
//remove point on stage
currentPoints.destroyPoints()
//remove point from array
aPointsArray.splice(j, 1);
nScore += 5;
updateHighScore();
}
}
}
我不确定我是否做对了,但我想在一条线上添加多个点的实例,以便玩家可以收集尽可能多的点。所以我创建了一个函数并设置了位置,然后在我的构造函数中添加了函数,addPointsToStage()
这样它就不会循环每一帧。
private function addPointsToStage():void
{
for (var i = 0; i < nPoints; i++)
{
points = new smallGainPoints();
stage.addChild(points);
points.x = (stage.stageWidth / 2);
points.y = (stage.stageHeight / 2);
points = new smallGainPoints();
stage.addChild(points);
points.x = (stage.stageWidth / 2) + 200;
points.y = (stage.stageHeight / 2);
}
这就是我启动阵列的方式:
public var points:smallGainPoints;
private var nPoints:Number = 5;
private var aPointsArray:Array;
然后在我的构造函数中我添加了:
aPointsArray = new Array();
因此,积分被添加到舞台上,但 hittest 不起作用。请帮忙!