AS3 - 重启循环错误

时间:2014-07-03 01:31:10

标签: actionscript-3 for-loop restart

我现在已经发现在重启游戏后Enter_frame函数没有循环?为什么会这样。

ENTER_FRAME:

public function enter_frame(e:Event)
    {
        trace("rGame = " + rGame);

        _Menu();

        if(mGameStart)
        {
            //Stage & Players

            _PlayerStart();
            _PlayerCon();
            _MoveStage();
        }

        if(rGame)
        {
            _PlayerCon();
            trace("_PlayerCon(): Done");
            _MoveStage();

        }

        if(Game_Over)
        {
            mGameStart = false;
            GameOver();

        }

    }

Pipe_Spawn:

private function eSpawn()
    {
        for(var i:int = 0; i < ePipeMax; i++)
        {
            var _Pipe:EPipe = new EPipe;

            _Pipe.x = (i * 250) + 640;
            _Pipe.y = Math.random() * 90;

            PipeLayer.addChild(_Pipe);


        }
    }

Pipe_Move:

public function _MoveStage():void
    {

        //Pipes Move
        for (var i:int; i < vPipeMax; i++)
        {

            var _Pipe = PipeLayer.getChildAt(i);

            if(_Pipe.hitTestPoint(_Player.x, _Player.y, true))
            {
                blink = true;

                Remove(_White);

                Game_Over = true;

            }
            else
            {
                if(_Pipe.x < 241 && _Pipe.x > 234){
                    ScoreReady = true;
                }
                else
                {
                    ScoreReady = false;
                    two = true;
                }

                if(ScoreReady && two)
                {
                    Score++;
                    Scores.text = Score.toString();
                    two = false;

                }

                if(_Pipe.x <= -20)
                {
                    _Pipe.x = 640 + 100;
                    _Pipe.y = Math.random()*90;
                }

                _Pipe.x -= xSpeed;
            }
        }
    }

Game_Restart:

public function restartButton(m:MouseEvent)
    {
        GOSign.y = 1000;
        R_Button.y = 1000;
        Scores.y = 105.65;
        HighScore.x = 500;
        ScoreReady = false;
        two = true;

        HighScore5();

        _Player.x = 240;
        _Player.y = 320;

        //This is where I restart the position of the pipes
        for (var i:int = 0; i < vPipeMax; i++)
        {
            var _Pipe = PipeLayer.getChildAt(i);

            _Pipe.x = (i * 250) + 640;
            _Pipe.y = Math.random() * 90;
        }

        rGame = true;

    }

我已经在这里待了大约两个星期而无法修复它。谢谢你的阅读。

1 个答案:

答案 0 :(得分:0)

我发现了我的问题。这是一个非常愚蠢的错误,我不能相信我花了很长时间才弄明白这一点。我忘了重置变量~facepalm~。我猜你从错误中吸取教训lol