Как изменить DrawOrder без использования DrawableGameComponent - PullRequest
2 голосов
/ 22 марта 2011

Чтение другого SO вопрос кажется, что DrawableGameComponent s не путь вперед.Я взял это на себя, чтобы провести небольшое исследование и, используя образец частиц с сайта XNA Creators , я решил исключить использование DrawableGameComponent s.Все скомпилировано нормально, за исключением того факта, что у меня нет DrawOrder и пример использует это для частиц.

Как я могу изменить DrawOrder, как если бы я использовал DrawableGameComponent

Ответы [ 2 ]

4 голосов
/ 22 марта 2011

GameComponent - отличный инструмент, который может сделать ваш код намного проще в использовании и повторном использовании.Я бы проигнорировал ответ Эндрю Рассела из другого ТАКОГО вопроса.Это очень предвзято.GameComponent с в порядке.Они похожи на синглтон.Вы бы не отказались от использования шаблона Singleton, потому что кто-то высказал негативное мнение по этому поводу, не так ли?

Попытка дублировать эту функциональность, которая уже существует в рамках, просто глупа.Эндрю Рассел считал, что GameComponent может сделать ваш код более грязным.Я бы сказал, что попытка написать свою собственную систему многоуровневого рисования сделает ваш код более запутанным.

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

3 голосов
/ 22 марта 2011

Я не скажу вам, какой подход лучше, но так вы бы поступили без использования GameComponents:

В методе Draw игры вы вызываете методы Draw систем частиц в нужном вам порядке:

smokePlumeParticles.Draw(gameTime);
explosionSmokeParticles.Draw(gameTime);
projectileTrailParticles.Draw(gameTime);
explosionParticles.Draw(gameTime);
fireParticles.Draw(gameTime);
...