Мяч должен иметь возможность двигаться через платформу только тогда, когда он движется вверх, пока он все еще находится под платформой. Тогда мяч должен пройти через платформу, не сталкиваясь с платформой. Кроме того, когда мяч касается края платформы и когда мяч не полностью над платформой, мяч должен двигаться через платформу, не сталкиваясь.
Код: Выделить всё
Body Platform, Ball;
Ball = BodyFactory.CreateCircle(world, 0.10f, 2.0f);
Ball.BodyType = BodyType.Dynamic;
Ball.Position = new Vector2(BallPosition.X, BallPosition.Y);
Ball.Rotation = 0f;
Ball.IsSensor = false;
Platform = BodyFactory.CreateEdge(world, new Vector2(StartPosition.X, StartPosition.Y), new Vector2(EndPosition.X, EndPosition.Y));
Platform.BodyType = BodyType.Static;
Platform.IsSensor = false;
Platform.IgnoreCollisionWith(Ball);
Я вызываю Platform.RestoreCollisionWith(Ball), когда мяч полностью находится над платформой, чтобы мяч не мог пройти через платформу, когда он касается платформы.
Что я могу сделать, чтобы мяч не случайно перемещается по платформе, когда мяч падает сверху на платформу?