Я играю в кирпичную игру в Javascript и пытаюсь улучшить функцию проверки столкновений. Я хочу знать, как я могу использовать вектор скорости мяча, чтобы определить, попадет ли мяч в кирпич и какая грань кирпича была поражена, чтобы я мог соответственно изменить скорость значения x или y шара.
Я думаю, что если я создам переменную, которая отслеживает значения x и y центра шара, то я могу лучше проверить, произошло ли столкновение.
например, если скорость мяча равна 4 единицам по x и 5 единицам по y при каждом обновлении игровой функции, то
xVector = 4 * time + (начальное значение x с последнее столкновение)
и
yVector = 5 * время + (начальное значение y с момента последнего столкновения)
Если я сбрасываю время после каждого столкновения, тогда я должен быть в состоянии предсказать, какой кирпич, если таковой имеется, ударит по мячу сразу после предыдущего столкновения.
Я думаю, что могу сделать эту функцию и обновить время с помощью игры (deltaTime), создав переменную времени и время ++ после каждой итерации игры. Но это не смотрит в будущее, оно только смотрит на то, что происходит в настоящее время.
Как я могу предсказать, какой кирпич будет поражен следующим сразу после столкновения?
Честно говоря, я не знаю, является ли это хорошей идеей для функции проверки столкновения, но я решил, что что если я знаю, какой кирпич будет поражен, и я знаю, сколько времени потребуется, чтобы попасть, тогда я могу просто удалить кирпич в тот момент. Вместо того, чтобы беспокоиться о настройке параметров для значений x и y шара, которые будут пересекаться со значениями x и y кубиков, а затем об их удалении после их пересечения, я подумал, что это может быть более точным. Хотя я не уверен.
Я попробовал альтернативный метод, который я только что описал, и мне было трудно избавиться от некоторых ошибок (см. Мой предыдущий вопрос), поэтому я решил, что я попробую другой подход вообще.
У кого-нибудь есть мысли или идеи?