1
我很好地调整了我的2D平台游戏物理,当我添加慢动作时,我意识到它是搞砸了。2D平台重力物理与慢动作
我遇到的问题是,由于某些原因物理学仍然取决于帧率。所以当我缩小时间时,每个力量也缩小。所以跳跃力量被缩小了,这意味着在慢动作中,角色垂直跳过较小的高度,并且重力也缩小,因此角色在空中进一步下降而不下降。
我送更新功能,希望有人能帮助我在这里(I分离的垂直(跳跃,重力),并在平台上行走(任意行走方向 - 平台可以是任意角度的)载体):
characterUpdate:(float)dt
{
//Compute walking velocity
walkingAcceleration = direction of platform * walking acceleration constant * dt;
initialWalkingVelocity = walkingVelocity;
if(isWalking)
{
if(!isJumping)
walkingVelocity = walkingVelocity + walkingAcceleration;
else
walkingVelocity = walkingVelocity + Vector(walking acceleration constant * dt, 0);
}
// Compute jump/fall velocity
if(!isOnPlatform)
{
initialVerticalVelocity = verticalVelocity;
verticalVelocity = verticalVelocity + verticalAcceleration * dt;
}
// Add walking velocity
position = position + (walkingVelocity + initialWalkingVelocity) * 0.5 * dt;
//Add jump/fall velocity if not on a platform
if(!isOnPlatform)
position = position + (verticalVelocity + initialVerticalVelocity) * 0.5 * dt;
verticalAcceleration.y = Gravity * dt;
}
你能解释一下“dt”是什么吗? – 2010-06-18 16:43:42
自上一帧 – 2010-06-18 23:55:32
以来的时间通过从所有加速度中去除时标(dt)来修正它。 – 2010-06-19 05:53:38