我有4个方向的2D游戏,而FPS(或GPU)存在问题,因为我必须绘制很多纹理。 我已经阅读了很多有关优化性能的技术,但是我不知道该怎么办。
主要问题是,在某些情况下,我约有200个生物,不仅要画他的身体(是单个精灵),还要在他的身体上画法术和其他动画。
所以,我认为那是开始产生冲突的原因,因为我绘制每个生物的循环必须更改每个生物的纹理,即body> animation1> animation2> animation3,这大约是200次(生物)以60 fps播放。将fps降低至40-50。
有什么建议吗?
这是它的外观:
答案 0 :(得分:0)
问题可能是-正如您已经建议的-不同纹理之间的不断切换。这比绘制具有相同纹理的相同数量的精灵要慢得多。
要更改此设置,请考虑将所有纹理放入单个大纹理中。然后,您总是绘制该纹理。这显然看起来很不对劲,因此您还必须告诉XNA您要绘制纹理的哪一部分。为此,可以使用可以传递给SpriteBatch.Draw(...)的SourceRectangle参数。这样,您始终可以渲染相同的纹理,但仍可以在屏幕上显示不同的图像。