我的游戏中有两个多边形。在这个简单的例子中,它们只是两个部分。现在我想检查碰撞,如果发生一次碰撞,我想将速度设置为零。使用Intersector.overlapConvexPolygons
我测试碰撞。
现在,我不想将移动物体的两个(水平和垂直)速度设置为0.0
,因为在这种情况下,玩家每次碰到墙壁时都会完全停止。我想要意识到的是,玩家仍然会沿着墙壁“滑动”,只有指向墙壁的速度才会被切割/设置为零。
我怎么能意识到这一点?
我目前的代码:
Intersector.MinimumTranslationVector mtv = new MinimumTranslationVector();
bool hasCollid = Intersector.overlapConvexPolygons(velocityPoly, velocityObstaclePoly, mtv);
if (hasCollid) {
velocity.horizontalVelocity = 0.0f;
velocity.verticalVelocity = 0.0f;
}