2

阅读另一个 SO question似乎DrawableGameComponents 不是前进的方向。我自己做了一些研究,并使用XNA Creators 网站上粒子样本,我决定去掉s. 一切都编译得很好,除了我没有可用的并且示例将其用于粒子的事实。DrawableGameComponentDrawOrder

我怎样才能改变DrawOrder好像我正在使用 a DrawableGameComponent

4

2 回答 2

4

GameComponents 是一个很棒的工具,可以让你的代码更容易使用和重用。我会忽略 Andrew Russell 对另一个 SO 问题的回答。这是高度偏颇的。GameComponents很好用。它们类似于单例。你不会因为有人表达了对它的否定意见而放弃使用单例模式,对吗?

试图复制框架中已经存在的这个功能是愚蠢的。Andrew Russell 的观点是GameComponents 会让你的代码更混乱。我认为尝试编写自己的分层绘图系统会使您的代码更加混乱。

底线:使用已经存在的功能。不要因为有人侮辱它而改变你的编码风格。当旧样式仍然有效时,您不必使用最新最好的。

于 2011-03-22T17:43:40.397 回答
3

我不会告诉你哪种方法更好,但这是不使用 GameComponents 的方法:

在游戏的 Draw 方法中,你可以按照你想要的顺序调用粒子系统的 Draw 方法:

smokePlumeParticles.Draw(gameTime);
explosionSmokeParticles.Draw(gameTime);
projectileTrailParticles.Draw(gameTime);
explosionParticles.Draw(gameTime);
fireParticles.Draw(gameTime);
于 2011-03-22T17:58:55.910 回答