Каков самый умный способ обновить окно для игры WPF?
Привет,
Я создаю игровой движок для WPF. Я пытаюсь отойти от DispatcherTimer к секундомеру, чтобы получить более постоянную скорость игры (так как DispatcherTimer пропускает повороты, если в игре слишком много объектов).
Я могу написать код для корректного обновления игры с помощью секундомера (то есть скорость и положение моих игровых объектов рассчитываются правильно), но когда я опущу DispatcherTimer, графический интерфейс никогда не будет перерисовываться.
Я знаю, что есть несколько способов принудительно перерисовать окно, но что было бы моим лучшим вариантом для 2D-игры в WPF? Я просто ищу что-то простое, что работает довольно эффективно без особых хлопот.
Это мой текущий код для размещения объектов на экране, много раз в секунду:
for (int i = 0; i < Bodies.NumberOfBodies(); { Body body = Bodies.Bodylist[i]; var shape = body.GetShape(); game.Children.Add(shape); //each movable body's shape is added again. Canvas.SetLeft(shape, body.PosX - offsetX); Canvas.SetTop(shape, body.PosY - offsetY); }
Спасибо!
Петтер
Что я уже пробовал:
Я читал на эту тему, но есть много решений, и я не знаю, что было бы наиболее подходящим.