【发布时间】:2013-01-17 23:13:35
【问题描述】:
我知道这很明显,但我在进行简单计算时遇到了一些问题。
我有一个对象,它有 X 和 Y 分量来表示它的速度。 我只是通过 X 和 Y 分量的平方根来计算它的总速度:
var totalSpeed:Number = Math.sqrt(b.currentSpeedY * b.currentSpeedY + b.currentSpeedX * b.currentSpeedX);
我还有一个变量叫divergence,保证在-1和1之间。根据散度,我计算碰撞后我新的X分量,乘以散度和总速度:
var sX:Number = -totalSpeed * divergence;
现在,由于我有了新的 X 速度和总速度,我只需通过从总速度中减去新 X 值的平方并取其平方根即可获得新的 Y 速度:
var sY:Number = -Math.sqrt(totalSpeed - (sX * sX));
这是我的问题:计算前后的总速度不匹配。我可以通过打印碰撞前后的总速度(平方和的根)以及简单地直观地查看物体的速度来确认这一点。碰撞后,物体的速度总是趋于变慢。
我显然在某处遗漏了一些非常简单的东西,但不幸的是在任何地方都找不到。导致总和不匹配的错误在哪里?
【问题讨论】:
标签: actionscript-3 math collision