2010-10-23 6 views
3

Мне интересно, что является лучшей практикой для gamedevelopment для actioncript 3. Я сейчас в процессе создания игры на основе плитки, но у меня уже есть проблемы, связанные с отдельными классами ,Структура развития игры AS3 OOP

Это текущая ситуация:

Основной класс

  • Формирует плитку
  • Добавляет игрок по классу
  • Добавляет интерфейс класса

Класс интерфейса содержит все интерфейсные элементы. Например, есть возможность вызвать объект в игру. Этот объект можно разместить на выбранной плитке.

Теперь проблема заключается в следующем: порожденный объект помещается в класс интерфейса, как должен порожденный объект иметь возможность общаться с плитами? Эта же проблема возникает с несколькими другими частями в игре. Как игрок должен иметь возможность взаимодействовать с порожденным объектом? Все в разных классах делает общение между всеми этими вещами настолько сложным.

Есть ли какая-либо стандартная процедура разработки игр, которая справляется с этой проблемой? Я думал о создании «мирового» класса, где каждый объект должен быть размещен как-то. Но мне трудно на самом деле сделать это с небольшим знанием такого рода структуры, которое мне принадлежит. Это все для меня ново, поэтому я был бы признателен, если бы объяснение было как можно скорее. Спасибо заранее!

ответ

1

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

Лучшим подходом может быть использование такой структуры, как Robotlegs, кривая обучения немного круче, но стоит дополнительных усилий.
http://www.robotlegs.org/

Вы должны легко найти примеры & учебники для Robotlegs.

+0

В зависимости от размера игры (количества предметов за один раз), отправка большого количества событий может заметно ухудшить производительность. – Marty

1

Попробуйте представить организацию частей вашей игры несколько иначе. Во-первых, этот класс World, который вы упомянули, может содержать как объект Map, так и объекты Unit для порожденного игрока или существ. Объект Map, который также содержит объекты Tile, каждый из которых имеет свою собственную информацию как ландшафт и атрибуты. Также объекты Unit будут содержать информацию, относящуюся к каждому икру. Для взаимодействия с вашим игроком у вас может быть объект Game, который содержит как World, так и представление вашего игрока, а именно объект Player, и этот объект Game будет передавать инструкции от игрока в сторону World, чтобы все произошло.Поскольку вы можете видеть, что каждый объект содержит другие объекты более тонкой детали, World содержит Map, который содержит Tile, таким образом, высший объект использует более мелкие более мелкие объекты и заставляет их связываться между ними.

Это может быть хорошим подходом к быстрому началу или чему-либо научиться во время экспериментов. Более сложная ситуация требует других способов организации всей информации игры, такой как структура Model-View-Controller, но вам, вероятно, не стоит беспокоиться об этом, пока вы не научитесь достаточно, чтобы знать, что вам нужно лучшее решение.

0

Я бы посоветовал немного прочитать о шаблонах дизайна. Класс Singlepat Dispatcher может помочь в вашем случае, вы просто связываете все с ним и отправляете события от одного объекта к другому.

Причина, по которой не использовать встроенные события, заключается в том, что вам нужны ваши объекты в списке отображения.

Смежные вопросы