私は単純なXNA 4.0ゲームを書いています。このゲームをレンダリングするWindowsフォームユーザーコントロールを作成し、必要な対話のフィードバック(キーボードとマウス)をXNAに戻したいと考えています。XNAゲームをWindowsフォームユーザーコントロールに埋め込む
XNAで:RenderTarget2Dへ
リダイレクトXNAのGame.GraphicsDevice
は、私は次のことを試してみました。
がイベントをキャプチャ:
- はKeyboardStateとMouseStateを持つオブジェクトを送信する場合のWinFormsで更新()
の冒頭で、Windowsフォームで記入することを放ちKeyboardStateとMouseStateには、Windowsフォームの通常のキーボードイベントとマウスイベントで得られたデータを入力します。 OnPaintで
- は、Game.RunOnFrame()を呼び出し
- (テクスチャなど)ゲームからRenderTarget2Dを取得します。
テクスチャのデータをロックし、ユーザコントロールのGraphicsでピクセル単位でペイントしようとします。
もう一つのアイデアは、ちょうど(新しいスレッドO)Game.Run()を呼び出したとRenderTarget2Dを送信するゲーム内イベントを発します。私はGame.Run()を呼び出すと、私はレンダリングリダイレクトてるので、私は、黒表示されている(ゲームのウィンドウを非表示にする方法がありません
:
私は、次のような問題点を発見しました)
Game.Run()は、新しいイベントループ(アプリケーションメソッドを呼び出す)を開始し、作成された別のスレッドからユーザーコントロールにペイントしているため(悪い、悪い)
(それは間違った構造サイズ」と言う)任意のアイデアをカラー、Vector4とRenderTarget2Dのロック、さらにはRgba32は私のために働くように見えませんか?
ありがとうございます。
ダムの質問 - なぜそれをしたいですか? – RQDQ
私はこのチュートリアルとコードサンプルがあなたがやりたいことを正確にカバーしていると思う:http://create.msdn。com/ja-ko/education/catalog/sample/winforms_series_1 –
@RQDQ私はそれほどよく考えられないコメントだと思います。 xnaゲームをwinformに組み込みたいと思う理由の1つは、レベルエディタを作成することです。 – annonymously