我在使用XNA制作2D游戏。在使用可绘制的游戏组件时,哪一种方法对性能更好呢?
1.当一个组件不在屏幕上时,从组件列表中将其移除,在屏幕上时再添加它。
2.当它不在屏幕上时,不要运行它的绘制函数(通过使用“awake”布尔字段和绘制函数周围的if语句)。
我目前正在使用方法2,它运行良好。这很方便,因为组件的绘制顺序不会改变(如果我删除并重新添加它们,则会更改,我需要更多的代码来管理它)。实际上,我刚刚意识到,如果它不在组件列表中,它就不会更新,我需要其他东西来跟踪它是否在屏幕上。
此外,我没有带有分析器的高级版本的Visual Studio,所以我只是在这里问问大家的经验是什么。
1.当一个组件不在屏幕上时,从组件列表中将其移除,在屏幕上时再添加它。
2.当它不在屏幕上时,不要运行它的绘制函数(通过使用“awake”布尔字段和绘制函数周围的if语句)。
我目前正在使用方法2,它运行良好。这很方便,因为组件的绘制顺序不会改变(如果我删除并重新添加它们,则会更改,我需要更多的代码来管理它)。实际上,我刚刚意识到,如果它不在组件列表中,它就不会更新,我需要其他东西来跟踪它是否在屏幕上。
此外,我没有带有分析器的高级版本的Visual Studio,所以我只是在这里问问大家的经验是什么。
Stopwatch
已经足够了。分析器将帮助解释为什么一个比另一个更快(即这个算法的哪些部分是慢的,什么消耗了最多的内存,我需要费心优化这个部分吗等)。 - ServyDrawableGameComponent
?如果你使用了很多实例,那么你可能在错误地使用它。 - Seth Battin