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

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



Нет никакой причины, почему я должен проверять столкновение между 5 и 6 шаром, если ни один из них не двигался – столкновение невозможно! В этой версии 9 шаров я создал два массива, названные moving и notMoving. Имена говорят нам довольно много: массив moving содержит ссылки на шары, которые двигаются, а массив notMoving содержит ссылки на шары, которые неподвижны. Когда по шару произведен удар, он удаляется из массива notMoving и помещается в массив moving. Когда шар прекращает движение, он удаляется из массива moving и помещается в массив notMoving. Когда массив moving пуст, это означает, что все шары остановились и ход завершен. Эта техника помогает мне более эффективно определять, какие шары должны быть проверены на столкновение. Я проверяю каждый движущийся шар с каждым другим движущимся шаром, и каждый движущийся шар с каждым неподвижным шаром. Когда двигаются много шаров, это может работать несколько медленно. Но для большинства ударов есть лишь несколько движущихся шаров, и так мы уменьшаем число проверок на обнаружение столкновений. Анализ оптимизации Важно понять, почему 10 шаров в игре 9-шаров являются для нас более подходящим числом, чем 16 шаров, необходимых для игры 8-шаров. Здравый смысл диктует нам, что если вы имеете меньшее количество шаров, то количество проверок на обнаружение столкновений уменьшается. Это так. И обнаружение столкновений представляет собой «дорогой» скрипт, который мы рассматриваем для минимизации. Flash в действительности не испытывает больших проблем от наличия большого количества шаров. Проблема в интенсивности вычислений. Игра с десятью шарами не просто немного быстрее – она существенно быстрее. Если в игре 9-шаров двигаются все шары, мы имеем 45 проверок на обнаружение столкновений в одном кадре. Если мы добавляем всего лишь шесть дополнительных шаров, количество вычислений взлетает до 120 проверок на кадр – приблизительно в три раза всего лишь для 6 дополнительных шаров. В результате моих тестов я обнаружил, что игра с 13 шарами все еще работает с приемлемой скоростью
Hosted by uCoz