Мне очень интересно узнать, что, если я помещу всю логику анимации/движения спрайтов в метод Draw вместо метода Update, а метод обновления будет просто управлять касанием и другими событиями. 1) есть проблемы с производительностью игровой анимации/логики?
2) не будет ли игровой экран работать так, как ожидалось?
XNA — метод обновления против метода рисования
Ответы (1)
В основном существует одно большое различие между методами рисования и обновления. Метод отрисовки работает в циклах с производительностью машины, поэтому, если компьютер медленный, вы можете получить 30 циклов в секунду, если компьютер имеет низкую производительность. Это также означает, что циклы не фиксированы, поэтому в одну секунду вы можете получить 30 циклов от метода рисования, а в следующий раз вы можете получить 40.
Вместо этого метод обновления имеет фиксированное количество циклов, поэтому это означает, что игровой процесс не будет замедляться только потому, что компьютер тормозит.
Не проблема поместить логику анимации спрайтов внутрь метода отрисовки. Это будет просто означать, что анимация будет работать со скоростью, с которой машина может справиться. Однако, если анимация влияет на другую логику непосредственно в игре, я бы рекомендовал выкладывать код в ветку обновления.
Draw
всегда будет работать в соотношении 1:1 с вашим методом Update
, если только вы не начнете пропускать кадры (в конфигурации по умолчанию). Как правило, ваша логика должна быть достаточно гибкой, чтобы справиться с тем, что Draw
не вызывается.
- person Andrew Russell; 07.12.2012