2012-01-05 16 views
3

私は単純な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は私のために働くように見えませんか?

ありがとうございます。

+1

ダムの質問 - なぜそれをしたいですか? – RQDQ

+1

私はこのチュートリアルとコードサンプルがあなたがやりたいことを正確にカバーしていると思う:http://create.msdn。com/ja-ko/education/catalog/sample/winforms_series_1 –

+1

@RQDQ私はそれほどよく考えられないコメントだと思います。 xnaゲームをwinformに組み込みたいと思う理由の1つは、レベルエディタを作成することです。 – annonymously

答えて

5

WinフォームでXNAを埋め込むことについて、XNAのサイト上の偉大なコードサンプルがあります。それはすべてのステップをあなたに連れて行きます。私はXbox用のゲームを作っていますが、これは私たちのエンジン用に作ったレベルエディタに使っています。

http://xbox.create.msdn.com/en-US/education/catalog/sample/winforms_series_1

+0

ありがとう、本当に役に立ちました。 –

+2

これは理論的に質問に答えるかもしれませんが、回答の重要な部分をここに含め、参照用のリンクを提供することが望ましいでしょう(http://meta.stackexchange.com/q/8259)。 –

関連する問題