Игровой цикл и GDI через .NET CF
Вопрос
Привет, я хочу написать игру с основной игровой формой и множеством других нормальных форм.Каков наилучший способ управления циклом обновления-отрисовки в этом случае?
Должен ли быть переопределен только цикл рисования игровой формы?или мне следует выполнить событие application.do() в основном методе?
Пожалуйста, помогите мне в этом вопросе.я новичок в мире Windows Forms
Решение
Ваш логический поток должен быть отделен от формы, поэтому вам не понадобится DoEvents().Если вы используете GDI+, вам следует принудительно запустить Update() в цикле.Windows Forms не очень хорошо поддерживает двойную буферизацию, поэтому в зависимости от того, насколько сложной будет ваша графика, у вас могут возникнуть проблемы с мерцанием.
Мое предложение состоит в том, чтобы посмотреть на использование Управляемая библиотека DirectX.Этому нужно многому научиться, но он дает вам все, что вам нужно.
РЕДАКТИРОВАТЬ:Недавно я читал о WPF, которая кажется гораздо лучшей платформой для простых и умеренно сложных игр, поскольку она предоставляет API гораздо более высокого уровня, чем Библиотека, управляемая DirectX.Однако у него, вероятно, есть ограничения по производительности и гибкости для более сложных игр.
Другие советы
В тексте вопроса не упоминается Compact Framework, а только Winforms.Это в значительной степени общепринятый ответ для Winforms от Тома Миллера (парень из Xna Game Studio и Managed DirectX из Microsoft):
@Рич Б:Игровой цикл не зависит от того, как выполняется рендеринг (DirectX, MDX, GDI+).