Я полагаю, вы могли бы создать объект физического движка, который вы будете постоянно обновлять через заданные промежутки времени. Он будет проверять наличие столкновений, перемещать мяч, вычислять углы отскока и т. Д.
РЕДАКТИРОВАТЬ # 1: Чтобы добавить немного больше деталей, объект "физика игры" будет хранить, среди прочего, ссылки на другие игровые объекты, такие как мяч и весла. Объект физики игры будет иметь метод «обновления», который будет вызываться непрерывно во время игры. Вот некоторые из шагов, которые должен выполнить этот метод:
- Получить текущую позицию весла (которые контролируются игроками).
- Обновить положение мяча на основе его предыдущей скорости и направления и времени, прошедшего с момента последнего обновления.
- Обнаружение столкновений с другими объектами (веслами, стенами и т. Д.).
- Пересчитать скорость и направление мяча на основе любых столкновений.
Всего несколько идей.
РЕДАКТИРОВАТЬ # 2: Разработать с немного больше OO фокус ...
Различные физические объекты, такие как шар и весла, будут хранить врожденные физические состояния и параметры для себя (положение, скорость, масса и т. Д.) Как свойства . Объект физики игры по существу представляет все уравнения физического движения в виде методов .
В качестве примера ... Допустим, вы хотите смоделировать влияние воздушного трения на мяч. Объект Ball будет хранить такие свойства, как «скорость» и «коэффициент сопротивления». У объекта игровой физики был бы метод вычисления силы сопротивления воздуха на объекте путем извлечения необходимых свойств этого объекта и включения их в заданное уравнение сопротивление жидкости .
Инкапсулируя вещи таким способом, обновления кода могут быть проще. Например, если вы хотите использовать другое уравнение для сопротивления жидкости, единственное изменение, которое вам нужно сделать, - это соответствующий метод объекта физики игры. Ни один из других объектов не нуждается в модификации.