AS3 hittest一直在打击

时间:2014-02-20 14:16:04

标签: actionscript-3 hittest

我有以下问题: 我想在“hittest”时保持得分。我使用以下代码:

private function fnMoveMap():void
    {
        for (var i:int = 0; i < vPipeMax; i++)
        {

            var tmpPipe = _conMap.getChildAt(i);
            //trace (tmpPipe.name);

            if (tmpPipe._HIT.hitTestPoint(_P.x, _P.y, true))
            {
                tmpPipe.visible = false;

                //stage.removeEventListener(Event.ENTER_FRAME, setScore);
                vScores++;
                txtScores.text = vScores.toString();
                //break;
            }
            //reset pos
            if (tmpPipe.x < 0)
            {
                //stage.addEventListener(Event.ENTER_FRAME, setScore);
                tmpPipe.visible = true;
                tmpPipe.x = 1050 - vXSpeed;
                tmpPipe.y = randomRangeMC(minPipeY, maxPipeY);
                //set score
                //vScores++;
                //txtScores.text = vScores.toString();
            }
            else
            {
                tmpPipe.x -= vXSpeed;

            }
        }
    }

var vScores将计数保持4到8次。 我怎么能算一个?

1 个答案:

答案 0 :(得分:0)

vScores变量增加4-8的原因是因为您使用for循环遍历vPipeMax多次循环。

您需要重新构建代码以使其不会发生,或者在您增加分数后立即break退出循环。