Тело потеряло компонент скорости при ударе по стене

Я создаю игру Breakout, используя Box2D (из LibGdx, если кому интересно). Все работает хорошо, пока мяч не ударит по стене при движении с очень маленьким углом. Пожалуйста, посмотрите изображение для получения более подробной информации:

введите описание изображения здесь

Я попытался установить трение стены на 0 и восстановить на 1, а также трение и реституцию шара, но он все равно движется вдоль стены (у меня нет Мировой Гравитации). Это также случается с вертикальной стеной, если угол достаточно мал, он потеряет скорость X.

Как я могу переместить мяч так, как я ожидал? Если нет трений, что вызвало проблему?

EDIT : только в случае с LibGdx это исправление:

World.setVelocityThreshold(float threshold);

Я установил его в 0.1f, и это помогло. Если вы столкнулись с проблемой, возможно, 0 может помочь, но это не рекомендуется.

5 голосов | спросил DatVM 23 AMpThu, 23 Apr 2015 10:05:32 +030005Thursday 2015, 10:05:32

1 ответ


0

Я не знаком с libgdx, поэтому извиняюсь, если это может быть немного неуместно; но вам не нужен сценарий для класса стены? Прямо сейчас кажется, что стена просто действует так, как будто она должна реагировать и ничего не делать, чтобы повлиять на движение мяча, поэтому мяч будет продолжать двигаться в том же направлении на черной стрелке.

Сделайте так, чтобы при ударе стены она умножалась на -1 векторный компонент оси Y шара. И если он попадает в любую из правых /левых стенок, умножьте на -1 компонент оси X.

ответил Zee 23 AMpThu, 23 Apr 2015 10:19:15 +030019Thursday 2015, 10:19:15

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132