質問
こんにちは、私はメインゲーム形式と他の多くの通常形式を持つゲームを書きたいと思っています。この場合、更新とペイントのサイクルを管理する最善の方法は何でしょうか?
ゲーム フォームのペイント ループのみをオーバーライドする必要がありますか?それともメインメソッドで application.do events() を実行する必要がありますか?
これに関して私を指導してください。Windows フォームの世界は初めてです
解決
ロジック スレッドはフォームから分離する必要があるため、DoEvents() は必要ありません。GDI+ を使用している場合は、ループで Update() を強制する必要があります。Windows フォームはダブル バッファリングをあまり適切に実行しないため、グラフィックスの洗練度によっては、ちらつきの問題が発生する可能性があります。
私の提案は、 DirectX マネージド ライブラリ. 。学ぶことはたくさんありますが、必要なものはすべて揃っています。
編集:最近 WPF について読んだことがあります。WPF は、単純なゲームから中程度に複雑なゲームまで、はるかに優れたプラットフォームのようです。WPF は、 DirectX マネージド ライブラリ. 。ただし、より複雑なゲームの場合は、おそらくパフォーマンスと柔軟性に制限があります。
他のヒント
質問の本文では Compact Framework については言及されておらず、Winforms についてのみ言及されています。これは、Tom Miller (Xna Game Studio および Microsoft のマネージド DirectX 担当者) からの Winforms に対するほぼ受け入れられた回答です。
@リッチB:ゲーム ループは、レンダリングの実行方法 (DirectX、MDX、GDI+) には依存しません。