我用SAT实现了一个物体在斜坡上运动的场景,当物体前进时效果是正确的,但当物体从斜坡上滚落时,产生了一些跳跃:
预期的是物体粘在坡上,和前进时的效果一样,请问这种情况有什么好的解决方案吗?
这是部分代码:
slopes.forEach((slope) => {
//Minimum Translation Vector
let mtv = character.collidesWith(slope);
if(mtv.overlap !== 0) {
character.velocityY = 0;
character.positionY -= mtv.overlap;
}
});
以及用到的图片,斜坡部分为橙色: