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