У меня серьезная проблема с производительностью игры, которую я разрабатываю для Windows Phone 7 в C # XNA 4.0 .
Происходит много кода, например столкновения, ввод, анимация, физика и т. Д.
Частота кадров была установлена на 60fps , но работает только на 32fps .
Я пробовал много вещей, таких как отключение, например, обнаружение столкновений, но ничего помог получить более высокую частоту кадров.
Теперь случайно обнаружил, когда отключил отрисовку фона , который является просто стандартным изображением размером 480x800 (То же, что и Разрешение Windows Phone) и использует метод по умолчанию «spriteBatch.Draw (Textures.background, Vector2.Zero, Color.White)», частота кадров которого изменяется от 32 до 55 кадров в секунду . Я также попытался изменить текстуру на белую, но это тоже не помогло, и я также попытался переместить рисунок фона в другое место в коде, но ничего не изменилось.
Я попытался создать новый проект и просто нарисовал фон, но тогда частота кадров была бы равна 60 кадров в секунду, как и должно быть.
У меня только один SpriteBatch.Begin () и SpriteBatch. End (), где все необходимые спрайты нарисованы внутри.
В игру загружено 256 Texture2D, и все они загружаются в начале игры.
Игра - это боковой скроллер, поэтому фон должен постоянно перемещаться влево, но даже если я просто установлю его на Vector2.Zero, он все равно испортит fps на -20fps.
Надеюсь, у кого-нибудь есть решение это, или, по крайней мере, представление о том, почему это происходит.