Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XNA C#性能问题_C#_Performance_Windows Phone 7_Xna - Fatal编程技术网

XNA C#性能问题

XNA C#性能问题,c#,performance,windows-phone-7,xna,C#,Performance,Windows Phone 7,Xna,我在屏幕上画了多个圆圈(没有填充),我对所有圆圈使用了相同的精灵,但比例值不同。问题是,当大约有6-10个时,它会滞后很多。纹理本身是400x400 png图片。注意:当使用参数最少的spritebatch.Draw()方法时,性能会显著提高。当我在保存比例值的列表中循环时,我正在绘图。值得一提的是,我是为WP7平台开发的,滞后只发生在速度较慢的设备上 下面是我正在使用的代码: for (int i = 0; i < active_triangles.Count; i++)

我在屏幕上画了多个圆圈(没有填充),我对所有圆圈使用了相同的精灵,但比例值不同。问题是,当大约有6-10个时,它会滞后很多。纹理本身是400x400 png图片。注意:当使用参数最少的
spritebatch.Draw()方法时,性能会显著提高。当我在保存比例值的列表中循环时,我正在绘图。值得一提的是,我是为WP7平台开发的,滞后只发生在速度较慢的设备上

下面是我正在使用的代码:

for (int i = 0; i < active_triangles.Count; i++)
                {                        
                    spriteBatch.Draw(circle, circle_origin, null, Color.White, 0, circle_pivot, scales[i], SpriteEffects.None, 0);
                    active_triangles[i].Draw(spriteBatch);
                }

只是一个提示!请阅读并重复几次。如果您向我们展示您正在使用的实际代码,这将非常有帮助。正如Oren所说,请发布一些更相关的代码(特别是三角形的.Draw(spriteBatch))。您的
SpriteBatch.Begin
SpriteBatch.End
调用在哪里?如果运行探查器,将更容易确定延迟的原因。查看哪些方法消耗的资源最多,您就会得到答案。
public void Draw(SpriteBatch spriteBatch)
    {
        spriteBatch.Draw(texture, position, frame, Color.White * alpha, rotation, pivot, 1, SpriteEffects.None, 0);
    }