Шары проходят друг через друга в физическом движке ⇐ C++
-
Anonymous
Шары проходят друг через друга в физическом движке
Я пытаюсь написать простой физический движок на C++; Пока все идет хорошо, и все функции работают так, как задумано, за исключением физики между самими шарами. Во время столкновений шары иногда просто проходят сквозь друг друга.
#include #include #include #include #include #include #include #include использование пространства имен std; класс Шар { публика: Позиция вектора2; Скорость Вектора2; радиус плавания; Цвет Цвет; }; void updateBall(Ball &ball, плавающая гравитация, плавающий коэффициент трения, float deltaTime, float screenWidth, float screenHeight, плавающая упругость, std::list &balls) { ball.velocity.y -= гравитация; // Применяем трение, если мяч находится вверху или внизу экрана ball.velocity.x *= (ball.position.y >= screenHeight - ball.radius || ball.position.y
Я пытаюсь написать простой физический движок на C++; Пока все идет хорошо, и все функции работают так, как задумано, за исключением физики между самими шарами. Во время столкновений шары иногда просто проходят сквозь друг друга.
#include #include #include #include #include #include #include #include использование пространства имен std; класс Шар { публика: Позиция вектора2; Скорость Вектора2; радиус плавания; Цвет Цвет; }; void updateBall(Ball &ball, плавающая гравитация, плавающий коэффициент трения, float deltaTime, float screenWidth, float screenHeight, плавающая упругость, std::list &balls) { ball.velocity.y -= гравитация; // Применяем трение, если мяч находится вверху или внизу экрана ball.velocity.x *= (ball.position.y >= screenHeight - ball.radius || ball.position.y
Мобильная версия