0

我是 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;
        }
4

1 回答 1

-1
If(platformholder[i].hitTestObject(player))

添加我制作循环的原因

于 2013-01-14T13:54:34.367 回答