Actionscript 无限跑游戏的AS3碰撞检测

Actionscript 无限跑游戏的AS3碰撞检测,actionscript,collision-detection,Actionscript,Collision Detection,我是AS3新手,希望能在碰撞检测方面得到一些帮助。我目前正在制作一个类似于机器人独角兽攻击的游戏(连续的“无限”级别);侧滚运行平台。我已经找到了0个连续/循环运行式平台的教程,所以我来到这里!我有一个静止不动的播放器,平台按照脚本移动到屏幕左侧,以实现滚动/运行效果。我在舞台上的平台上有三个例子,但是玩家只会对其中一个的碰撞做出反应。正在从所有平台检测到碰撞 下面的代码用于在我的游戏循环函数中执行的碰撞。非常感谢您的帮助!:D谢谢 for (var i = 0; i &l

我是AS3新手,希望能在碰撞检测方面得到一些帮助。我目前正在制作一个类似于机器人独角兽攻击的游戏(连续的“无限”级别);侧滚运行平台。我已经找到了0个连续/循环运行式平台的教程,所以我来到这里!我有一个静止不动的播放器,平台按照脚本移动到屏幕左侧,以实现滚动/运行效果。我在舞台上的平台上有三个例子,但是玩家只会对其中一个的碰撞做出反应。正在从所有平台检测到碰撞

下面的代码用于在我的游戏循环函数中执行的碰撞。非常感谢您的帮助!:D谢谢

           for (var i = 0; i < numChildren; i++)
        {
            if (getChildAt(i) is Platform)
            {
                var platformHolder = getChildAt(i) as Platform


                if (platformHolder.hitTestPoint(player.x + leftBumpPoint.x, player.y + leftBumpPoint.y, true))
                {
                    trace("left hit")
                    leftBumping = true;
                }

                else

                {
                    leftBumping = false
                }

                if(platformHolder.hitTestPoint(player.x + rightBumpPoint.x, player.y + rightBumpPoint.y, true))
                {
                    trace("right hit");
                    rightBumping = true;
                }
                else
                {
                    rightBumping = false;
                }

                if(platformHolder.hitTestPoint(player.x + upBumpPoint.x, player.y + upBumpPoint.y, true))
                {
                    trace("Up hit");
                    upBumping = true;
                }
                else
                {
                    upBumping = false;
                }

                if(platformHolder.hitTestPoint(player.x + downBumpPoint.x, player.y + downBumpPoint.y, true))
                {
                    trace("down hit");
                    downBumping = true;
                }
                else
                {
                    downBumping = false;
                }
                }

            }


        if(leftBumping)
        {
            if(xSpeed < 0)
            {
                xSpeed *= -0.5;
            }
        }

        if(rightBumping)
        {
            if(xSpeed > 0)
            {
                xSpeed *= -0.5;
            }
        }

        if(upBumping)
        {
            if(ySpeed < 0)
            {
                ySpeed *= -0.5;
            }
        }

        if(downBumping)
        {
            if(ySpeed > 0)
            {
                ySpeed *= -0.5;
            }
        }
        else
        {
            //if not touching the floor
            ySpeed += gravityConstant;
        }
for(变量i=0;i0)
{
xSpeed*=-0.5;
}
}
如果(向上泵送)
{
如果(Y速度<0)
{
Y速度*=-0.5;
}
}
if(下颠簸)
{
如果(Y速度>0)
{
Y速度*=-0.5;
}
}
其他的
{
//如果不接触地板
Y速度+=重力常数;
}

加上你做循环的原因,你需要让你的问题比“我需要帮助”更具体。什么东西特别坏?这是一个问答网站,所以你的问题应该针对一个特定的问题,而不是一般的帮助需求。无论如何,你的实际问题与中相同:每当平台没有与玩家发生冲突时,你都会将相应的标志重置为false,即使之前是真的。解决办法是不这样做;只需在循环之前将所有标志设置为false,然后仅在检测到冲突时更改它们。
If(platformholder[i].hitTestObject(player))