![]() |
Отрисовка объектов полученных из QuadTree
Делаю Quadtree для оптимальной отрисовки графических объектов
и коллизий. У меня есть спрайт Level наполненный игровыми объектами, каждый из которых занесен в лист Quadtree. Когда добавляется спрайт Level в список отображения, то всем игровым объектам внутри спрайта я ставлю object.visible = false, т.е. скрываю их. Далее речь пойдет только об отрисове, физику отбросим: В результате я получаю список объектов List, которые попадают в обзор камеры (прямоугольника). Из возвращенного списка List я всем объектам назначаю object.visible = true. Все ок, отображаются только нужные объекты, но далее камера перемещается и те объекты которые были видимы мы их должны скрыть, чтобы они заного прошли проверку Quadtree. Получается так: Код:
запоминать прорисованные объекты и далее перед проверкой quadTree скрывать их. Т.к. иначе камера может переместиться и эти объекты будут отображены, хотя они не попадают в область видимости камеры. Вообще скрывать/показывать объекты это наверно не очень хороший вариант, т.к. если объектов тысячи, то хоть они и крыты но флеш будет тратить на них ресурсы, т.к. они в списке отображения. Если же делать removeChild/addChild, то тут значительно больше работы по возвращению в сцену объекта в нужном положении/состоянии. Хотелось бы отрисовывать объекты через свойство visible = true/false, но вот вариант, где надо скрывать объекты перед проверкой мне не очень нравится… Как лучше, организовать отрисовку объектов (вворачиваемых из quadTree)? А вообще нужна ли фильтрация отрисовки объектов, ведь флеш и сам не прорисовывает графику все зоны видимости... Помню, делал давно Octree на DirectX и там, чтобы отрисовать объект надо было в рендере вызвать функцию прорисовки объекта (не вызвана покадрово – не прорисовывается объект), т.е. почти нет лишних движений. |
| Часовой пояс GMT +4, время: 10:05. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.