Я использую C # / XNA, и мне несколько раз говорили не смешивать код обновления с кодом отрисовки - и я уверен, что нет! Но может ли кто-нибудь описать, что такое «логический код»?
Как видно здесь: http://blogs.msdn.com/b/shawnhar/archive/2007/07/25/understanding-gametime.aspx
[...] убедитесь, что вы поместили всю свою игровую логику в метод Update (не в Draw!), и все будет работать с хорошей постоянной скоростью.
Я спрашиваю об этом, так как скорость моей игры колеблется относительно FPS. Медленный FPS равняется медленным объектам и наоборот. И да, я включаю ожидаемый position += speed * (float)gt.ElapsedGameTime.TotalSeconds;
код.
Вероятно, это большой вопрос новичка, но я просто хочу быть абсолютно ясным в определении этого.
gt.ElapsedGameTime.TotalSeconds
сколько секунд прошло с момента запуска программы (игры). Если вы умножаете свою скорость на это, то после 5 секунд игры ваша скорость будет в 5 раз выше (кроме особого случая, когда скорость установлена на 0). Не уверен, что еще ты мог бы сделать это неправдой, но я заинтригован.
iii
которую я вручную увеличиваю каждое обновление, потому что я не хочу ее в считанные секунды, я хочу шаги или кадры. Я вижу, что ваш путь - это правильный способ софт-кодирования.
position = speed * ...TotalSeconds
. Обратите внимание, это=
не так+=
. Если бы это было+=
так, как вы печатали, то ваша позиция почти мгновенно исчезла бы с экрана.