Вопрос

Привет, я хочу написать игру с основной игровой формой и множеством других нормальных форм.Каков наилучший способ управления циклом обновления-отрисовки в этом случае?

Должен ли быть переопределен только цикл рисования игровой формы?или мне следует выполнить событие application.do() в основном методе?

Пожалуйста, помогите мне в этом вопросе.я новичок в мире Windows Forms

Это было полезно?

Решение

Ваш логический поток должен быть отделен от формы, поэтому вам не понадобится DoEvents().Если вы используете GDI+, вам следует принудительно запустить Update() в цикле.Windows Forms не очень хорошо поддерживает двойную буферизацию, поэтому в зависимости от того, насколько сложной будет ваша графика, у вас могут возникнуть проблемы с мерцанием.

Мое предложение состоит в том, чтобы посмотреть на использование Управляемая библиотека DirectX.Этому нужно многому научиться, но он дает вам все, что вам нужно.

РЕДАКТИРОВАТЬ:Недавно я читал о WPF, которая кажется гораздо лучшей платформой для простых и умеренно сложных игр, поскольку она предоставляет API гораздо более высокого уровня, чем Библиотека, управляемая DirectX.Однако у него, вероятно, есть ограничения по производительности и гибкости для более сложных игр.

Другие советы

В тексте вопроса не упоминается Compact Framework, а только Winforms.Это в значительной степени общепринятый ответ для Winforms от Тома Миллера (парень из Xna Game Studio и Managed DirectX из Microsoft):

Игровой цикл Winforms

@Рич Б:Игровой цикл не зависит от того, как выполняется рендеринг (DirectX, MDX, GDI+).

Если вы делаете игру, вам следует изучить ДиректХ, OpenGL, или XNA.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top