В настоящее время я создаю шутер сверху вниз, как Touhou. Самый важный фактор игры заключается в том, что существует множество разнообразных шаблонов и способов создания пуль и стрельбы по игроку, см. Это видео: http://www.youtube.com/watch?v=4Nb5Ohbt1Sg#start=0 : 60; конец = 9: 53 ;
На данный момент я использую класс «Узор», который имеет серию шагов по перемещению и стрельбе. Тем не менее, я чувствую, что этот метод довольно трудоемкий, поскольку мне нужно создавать новый шаблон для каждой атаки и, возможно, новые классы Bullet, которые будут реализовывать определенное поведение.
Этот вопрос получил комментарий, предлагающий мне взглянуть на BulletML для простого создания и хранения пуль с определенным шаблоном. Это выглядит прилично, но это заставило меня задуматься, какие еще решения у вас есть, которые я должен принять во внимание?
Обновить
Мой текущий дизайн выглядит следующим образом:
Пример реализованного шаблона:
Мой GigasPattern сначала выполняет телепорт, который перемещает Алису в определенную точку (X, Y) на экране. После этого шаблон начинает использовать Mover для перемещения спрайта (тогда как телепортирование имеет отдельные эффекты и анимацию). На самом деле это не имеет значения, поскольку они довольно просты.
Стрелок также создает различные Атаки, которые снова являются классами, которые Стрелок может использовать для создания различных патронов, очень похожих на тот, что был в вопросе, который я опубликовал. Как только Движитель достиг цели, и он, и стрелок останавливаются и возвращаются в неактивное состояние. Шаблон завершается, удаляется ИИ и выбирается новый.
Может быть, вы могли бы реализовать собственный маленький язык сценариев для вашей игры. Тогда вы сможете писать сценарии поведения пули, просто добавляя новые сценарии. Преимущество собственного скриптового языка в том, что вы можете использовать его в других частях вашей игры. Или вы можете попробовать использовать Lua (я не знаю, какой язык / рамки вы используете). Но, по моему мнению, Lua будет излишним, если вы просто захотите использовать движущиеся узоры.
Между: я сделал это уже для космического шутера, но для поведения врага. Это сработало хорошо, так что вы действительно можете просто попробовать это.
источник
Я был в точно такой же ситуации некоторое время назад и начал реализовывать свою собственную архитектуру для шаблонов маркеров. Я сдался, потому что наткнулся на реализацию BulletML для C # / XNA: BulletML C #
Я должен был сделать несколько изменений, но теперь создавать шаблоны, которые выглядят эффектно, действительно просто. Существует большое демо здесь , который показывает вам , как, несколько строк XML, можно создавать удивительные узоры.
Если вы работаете над C #, я настоятельно рекомендую избегать повторного изобретения колеса. Особенно, если вы хотите иметь очень сложные шаблоны. Может потребоваться некоторое время, чтобы обернуть голову вокруг BulletML, но, на мой взгляд, оно того стоит.
Однако, если вы решите не использовать BulletML, то, по крайней мере, взгляните на код C # и получите представление о его архитектуре. Это может дать вам некоторые идеи.
источник