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

Closed
tonykozlovsky opened this Issue Dec 26, 2018 · 7 comments

Comments

Projects
None yet
4 participants
@tonykozlovsky
Copy link

tonykozlovsky commented Dec 26, 2018

Неправильный рассчёт столкновения роботов при расширении.

Опытным путём в локал раннере проверить возможную ошибку не удалось, из-за сложности воспроизведения.
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 робота одновременно "расширяются", вместо того, чтобы оттолкнуться с большей силой, они компенсируют расширение друг друга и вовсе не отталкиваются

@ivan-kudziev

This comment has been minimized.

Copy link

ivan-kudziev commented Dec 26, 2018

может так и задумано... если один толкает то второй отлетает, если толкают оба то гасят свои силы

@mixei4

This comment has been minimized.

Copy link

mixei4 commented Dec 26, 2018

Кажется, ошибка воспроизводится с клавиатуры. Если подойти вплотную к стоящему игроку и прыгнуть, то иногда робот отпрыгивает в сторону (робот a), а иногда вертикально вверх (робот b).

@tonykozlovsky

This comment has been minimized.

Copy link

tonykozlovsky commented Dec 26, 2018

Суть в том, что оба, находясь очень близко, должны прыгнуть одновременно, и чтобы b.radius_change_speed было равно a.radius_change_speed, по этому я пока не понял, как ты предлагаешь воспроизвести

@mixei4

This comment has been minimized.

Copy link

mixei4 commented Dec 26, 2018

Я более простой случай рассматриваю. Если расширяется только один робот. Так вот в случае если этот робот по воле случая окажется роботом a, то слолкновение произойдёт, а если b, то нет.

@tonykozlovsky

This comment has been minimized.

Copy link

tonykozlovsky commented Dec 26, 2018

Всё, понял, согласен, действительно результат этой формулы зависит от рандомного порядка роботов. Там ещё про модуль мысль хорошая. Действительно, если бы так было задумано, то нужен как минимум модуль.

@tonykozlovsky

This comment has been minimized.

Copy link

tonykozlovsky commented Dec 26, 2018

А если это воспроизводится в локал раннере, то это не опечатка

@kuviman kuviman closed this in 606fce8 Dec 27, 2018

@kuviman

This comment has been minimized.

Copy link
Collaborator

kuviman commented Dec 27, 2018

Вы правы, это был баг (не только в документации). Обновлены правила/ЛР

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment