Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

(SolveCollision) Решение одной коллизии #3

Closed
mchernigin opened this issue Apr 1, 2024 · 0 comments · Fixed by #27
Closed

(SolveCollision) Решение одной коллизии #3

mchernigin opened this issue Apr 1, 2024 · 0 comments · Fixed by #27
Assignees
Labels
enhancement New feature or request

Comments

@mchernigin
Copy link
Member

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

Если коллизия не произошла (c.exists равно false), то ничего делать не нужно. Если коллизия по горизонтали (std::abs(c.overlap.x)) больше, чем по вертикали (std::abs(c.overlap.y)), то объект obj перемещается на величину c.overlap.x влево или вправо в зависимости от направления коллизии. В противном случае, объект перемещается на величину c.overlap.y вверх или вниз в зависимости от направления коллизии. Если перекрытие по вертикали отрицательное (c.overlap.y < 0), то у объекта obj обнуляются ускорение и скорость по оси y, а также устанавливается возможность прыгать (obj.physics.can_jump = true), если скорость по оси y была меньше 0. Если коллизия по вертикали положительна (c.overlap.y > 0), то скорость объекта по оси y обнуляется (obj.physics.speed.y = 0).

@mchernigin mchernigin converted this from a draft issue Apr 1, 2024
@vasthecat vasthecat moved this to Todo in MIT Game 2024 [1] Apr 11, 2024
@Anarchy73 Anarchy73 self-assigned this Apr 24, 2024
@Anarchy73 Anarchy73 added the enhancement New feature or request label Apr 24, 2024
@Anarchy73 Anarchy73 linked a pull request Apr 30, 2024 that will close this issue
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
enhancement New feature or request
Projects
Status: Todo
Development

Successfully merging a pull request may close this issue.

2 participants