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