0

私はかなり基本的なゲームの始まりをコーディングしてきましたが、壁にぶつかりました。コードをコンパイルすると、ゲームは実行されますが、実行時エラーが発生します。

ArgumentError: エラー #1063: block() の引数カウントが一致しません。
flash.display:: Sprite/constructChildren()
で、flash display::Sprite()
で、flash.display::MovieClip()で、 AvoiderGame
() を取得しました。

というタイトルのドキュメントクラスは次のAvoiderGameとおりです。

package
{
    import flash.display.MovieClip;
    import flash.utils.Timer;
    import flash.events.TimerEvent;

    public class AvoiderGame extends MovieClip
    {

        public var avatar1:avatar;
        public var gameTimer:Timer;
        public var army:Array;

        public function AvoiderGame()
        {
            army=new Array();
            var newblock= new block(100,-15);
            army.push(newblock);
            addChild(newblock);

            avatar1=new avatar();
            addChild (avatar1);
            avatar1.x=mouseX;
            avatar1.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 newblock:block = new block( randomX, -15 );

                army.push( newblock );
                addChild( newblock );
            }

            avatar1.x = mouseX;
            avatar1.y = mouseY;

            for each (var block1:block in army)
            {
                block1.moveDownaBit();

                if (avatar1.hitTestObject(block1))
                {
                    gameTimer.stop();
                }
            }
        }
    }
}

最後にblock、コンストラクター関数がエラーを引き起こしているように見える私のクラスを次に示します。

package 
{
    import flash.display.MovieClip;

    public class block extends MovieClip
    {
        public var block1:block;

        public function block(startX:Number, startY:Number)
        {
            x=startX;
            y=startY;
        }

        public function moveDownaBit():void
        {
            y=y+3;
        }
    }
}

私が取り組もうとしているのは、一連の敵がステージ上でランダムに出現し、アバター アイコンが当たらずに落下することだけです。私が大いに受けられる助けをいただければ幸いです。

4

1 に答える 1

0

ステージ上にのインスタンスがあるように聞こえるので、Flash はとblockを渡さずに作成しています。事前に配置されたブロックを削除するか、コンストラクターにデフォルト値を追加するだけです。startXstartY

public function block(startX:Number = 0,startY:Number = 0)
{
    x = startX;
    y = startY;
}
于 2013-01-20T21:34:41.243 に答える