English Version            Русская версия

 [ Разделы сервера ]  [ Карта сервера ]  [ Новости сервера ] [ Обратная связь ]



Эта операция имеет прямое применение в любой игре, которая использует шар, отскакивающий (или скатывающийся вниз) от стенки или возвышенности – игр вроде пинбола или минигольфа. Мы начинаем рассматривать логику, необходимую для обнаружения столкновения между окружностью и линией. Мы предполагаем, что линия неподвижна, а окружность движется. Мы также предполагаем, что столкновения еще не было, когда мы начинаем процесс поиска столкновения (в противном случае выполнение кода скрипта не даст результата). В предыдущем разделе мы разработали метод обнаружения пересечения двух линий. Мы будем использовать его также и здесь. Шар в движении создает воображаемую линию по пути движения (его траектория). Мы определяем, где пересекаются эта линия траектории и основная линия. Как только это найдено, мы используем тригонометрию для определения точного места, где окружность сталкивается с линией. Затем мы находим точку столкновения ни линии (где окружность соприкасается с линией). Наконец, мы ищем текущее положение окружности и вычисляем, как много времени потребуется окружности, чтобы достичь точки столкновения. Если этот результат меньше или равен одному кадру, то столкновение произошло. Чтобы резюмировать, выразим это процесс независимого от кадров обнаружения столкновения окружности с линией более кратко: 1. Определить точку пересечения между траекторией окружности и линией. 2. Использовать тригонометрию для нахождения координат окружности, когда она первоначально сталкивается с линией. 3. Найти координаты точки столкновения непосредственно на линии. 4. Вычислить число кадров, которое потребуется окружности для перемещения окружности из текущего положения в положение столкновения. Если это число меньше чем или равно 1, то столкновение произошло. LINE ЛИНИЯ Intersection between path and line Пересечение между траекторией и линией Point of contact Точка контакта Position of circle at the time of collision Положение окружности в момент столкновения Вы уже видели, как выполнить то, что реализовано в шагах 1 и 4 в ранее рассмотренных разделах
Hosted by uCoz