0

我正在使用 Actionscript3 和 Adob​​e Flash CS5.5 创建我的第一个 Flash 游戏。游戏的概念就是你在宇宙飞船里,你试图避开小行星。你避开小行星的时间越长,你得到的分数就越多。我知道这不是很原始。今天突然出现这个错误:

TypeError: Error #2007: Parameter hitTestObject must be non-null.

这个错误正在做的是,当宇宙飞船撞击小行星时,什么也没有发生。宇宙飞船刚刚飞过。

我不知道如何解决这个问题。这是我的代码:

public class AvoiderGame extends MovieClip
{   
    public var army:Array;
    public var gameTimer:Timer;
    public var avatar:Avatar;

    public function AvoiderGame()
    {
        army=new Array();

        avatar=new Avatar();
        addChild( avatar );
        avatar.x=mouseX;
        avatar.y=mouseY;

        gameTimer= new Timer (25);
        gameTimer.addEventListener(TimerEvent.TIMER, onTick);
        gameTimer.start();

    }
    public function onTick(timerEvent:TimerEvent):void
    {
        if (Math.random() < 0.1)
        {
            var randomX:Number = Math.random() * 400;
            var newEnemy=new Enemy(randomX,-15);
            army.push( newEnemy );
            addChild( newEnemy );
        }

            avatar.x=mouseX;
            avatar.y=mouseY;
            for each ( var enemy:Enemy in army ) 

            enemy.moveDownABit();
        {
            if (avatar.hitTestObject( enemy ))
            {
                gameTimer.stop();
                dispatchEvent( new AvatarEvent( AvatarEvent.DEAD ) );
            }
        }
    }
}

}

4

1 回答 1

1

看起来你的括号搞砸了。for each 只做enemy.moveDownABit()一行。在 for 循环开始后将您的括号移到右边。

使用现在的括号,敌人超出了范围,这就是为什么它是 Null ,这就是错误告诉你的。

于 2012-04-21T03:17:07.933 回答