我很好地调整了我的2d平台物理,当我添加慢动作时,我意识到它已经搞砸了。
我遇到的问题是由于某种原因,物理学仍然依赖于帧率。因此,当我缩短经过的时间时,每个力量也会缩小。因此,跳跃力被缩小,意味着在慢动作中,角色跳跃垂直较小的高度,重力也会缩小,因此角色在空中进一步下降而不会下降。
我正在发送更新功能,希望有人可以在这里帮助我(我分离垂直(跳跃,重力)和行走(在平台上任意行走方向 - 平台可以是任何角度)向量):
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;
}