New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Опечатка в документации? Или Баг в физическом движке! #90
Comments
может так и задумано... если один толкает то второй отлетает, если толкают оба то гасят свои силы |
Кажется, ошибка воспроизводится с клавиатуры. Если подойти вплотную к стоящему игроку и прыгнуть, то иногда робот отпрыгивает в сторону (робот a), а иногда вертикально вверх (робот b). |
Суть в том, что оба, находясь очень близко, должны прыгнуть одновременно, и чтобы |
Я более простой случай рассматриваю. Если расширяется только один робот. Так вот в случае если этот робот по воле случая окажется роботом a, то слолкновение произойдёт, а если b, то нет. |
Всё, понял, согласен, действительно результат этой формулы зависит от рандомного порядка роботов. Там ещё про модуль мысль хорошая. Действительно, если бы так было задумано, то нужен как минимум модуль. |
А если это воспроизводится в локал раннере, то это не опечатка |
Вы правы, это был баг (не только в документации). Обновлены правила/ЛР |
Неправильный рассчёт столкновения роботов при расширении.
Опытным путём в локал раннере проверить возможную ошибку не удалось, из-за сложности воспроизведения.
let delta_velocity = dot(b.velocity - a.velocity, normal) + b.radius_change_speed - a.radius_change_speed
Надо заменить на
let delta_velocity = dot(b.velocity - a.velocity, normal) - b.radius_change_speed - a.radius_change_speed
Потому что в случае, когда 2 робота одновременно "расширяются", вместо того, чтобы оттолкнуться с большей силой, они компенсируют расширение друг друга и вовсе не отталкиваются
The text was updated successfully, but these errors were encountered: