質問

こんにちは、私はメインゲーム形式と他の多くの通常形式を持つゲームを書きたいと思っています。この場合、更新とペイントのサイクルを管理する最善の方法は何でしょうか?

ゲーム フォームのペイント ループのみをオーバーライドする必要がありますか?それともメインメソッドで application.do events() を実行する必要がありますか?

これに関して私を指導してください。Windows フォームの世界は初めてです

役に立ちましたか?

解決

ロジック スレッドはフォームから分離する必要があるため、DoEvents() は必要ありません。GDI+ を使用している場合は、ループで Update() を強制する必要があります。Windows フォームはダブル バッファリングをあまり適切に実行しないため、グラフィックスの洗練度によっては、ちらつきの問題が発生する可能性があります。

私の提案は、 DirectX マネージド ライブラリ. 。学ぶことはたくさんありますが、必要なものはすべて揃っています。

編集:最近 WPF について読んだことがあります。WPF は、単純なゲームから中程度に複雑なゲームまで、はるかに優れたプラットフォームのようです。WPF は、 DirectX マネージド ライブラリ. 。ただし、より複雑なゲームの場合は、おそらくパフォーマンスと柔軟性に制限があります。

他のヒント

質問の本文では Compact Framework については言及されておらず、Winforms についてのみ言及されています。これは、Tom Miller (Xna Game Studio および Microsoft のマネージド DirectX 担当者) からの Winforms に対するほぼ受け入れられた回答です。

Winforms ゲーム ループ

@リッチB:ゲーム ループは、レンダリングの実行方法 (DirectX、MDX、GDI+) には依存しません。

ゲームを作成している場合は、次のことを検討する必要があります。 ダイレクトX, OpenGL, 、 または XNA.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top