вторник, 23 октября 2007 г.

Тайлы, основа.

Добрый день.

Тайл – это плиточка с помощью, которой можно построить все что угодно. В свое время тайлы использовали для сокращения системных ресурсов, потому как, используя десяток тайлов, можно было нарисовать целые подземелья, леса, горы. Использовать тайлы во флеше очень удобно для создания разнообразных тетрисов, платформеров, стратегий, изометрических чатов и многого другого.

Сейчас я занимаюсь разработкой проекта аналогичного DTD. Изначально стоит обратить внимание на таки сложности как

  • Непрерывный поиск пути. В любой момент игрок может изменить свой лабиринт пушек, монстры должны реагировать моментально.
  • Большое количество монстров одновременно. Игрок в погоне за очками может вызывать по несколько волн монстров, и в итоге на сцене окажется больше сотни монстров.
  • Множество пушек должно реагировать на монстров и вовремя открывать огонь.

Каждый этот пункт по отдельности представляет собой не простую задачу. А вместе превращаются в настоящую головную боль. Однако мы берем и начинаем использовать тайлы. Поверх готового заднего фона мы натягиваем невидимую сетку, каждая ячейка которой по факту и является тайлом. Сразу упрощается задача поиска пути, наши тайлы и будут, является сеткой для карты. Во-вторых, как только мы строим новую пушку, автоматически изменятся параметры тайла, следовательно, при следующем пересчете пути, монстр уже будет знать об изменениях в лабиринте. Далее зона обстрела пушек. Нам не нужно более проверять каждую пушку относительно каждого монстра. При строительстве пушки, мы отмечаем в тайлах, что они находятся под зоной обстрела. И как только монстр приходит в новый тайл, просто «вызываем огонь на себя». В результате, в данный момент одновременно на карте находится до 100 монстров, со стреляющими пушками.

P.S. Извините что пока посты не очень длинные и сумбурные. Я только начинаю свою блоггерскую жизнь, поэтому буду стараться с каждым разом писать все больше, лучше и интересней. Приветствуется любая критика.

1 комментарий:

Анонимный комментирует...

Для начала хорошо.