2012-04-05 4 views
1

私は非常に基本的なXNA 4.0プログラムを開始しました。ここでは、コンテンツローダーを通してドットの赤いイメージを読み込みます。赤い点は10x10で、エッジを丸くして丸く見せます。私はそれをスクリーン上に描画し、XとYの位置をマウスのXとYの位置に更新しています。基本的にはカスタムの赤いカーソルです。XNA基本ペイントプログラム

私の質問は次のとおりです: このカーソルをブラシとして使用するにはどうすればいいですか?マウスの左ボタンをクリックすると、現在の画面のサイズである空白のTexture2D背景にペイントします。それはMSPAINTのペイントブラシのように機能します。

私は、マウスが移動した点を保持するVector2点の配列が必要であると思います。更新が発生した時点で、背景Texture2Dの点をペイントしますか?

おそらくそれほど効率的ではありませんが、私はその時点で考えていたすべてでした。

私はTexture2Dの色データの変更についても読んだことがありますが、運がなかったのは残念です。

+0

誰がキャンバスのメモリイメージを保存していないのでしょうか?いつでも新しいポイントを追加すると画像が更新されるので、リフレッシュにはイメージの一部のイメージだけが必要になります。 XNAでは無知なので、これはここで有効かどうかは分かりません。 –

+0

この機能を持つ他のプログラムと同じ方法で実装します。 XNAを使用しても特別なものにはなりません。どのように始めるべきかわからない場合は、あなたのリーグのうち、あなたが何をしているのかを知っている誰かを雇う。私はあなたがコンピュータサイエンスの学位を持っていることを意味します.DirectXの経験があると主張しています。あなたのプロフィールには嘘がいっぱいです。 –

+0

Ramhound、 あなたはそのように感じて申し訳ありませんが、私はそれが少し厳しいと思います。あなたが私を信じないと私のポートフォリオを見てください。http://www.sourcemodding.com/portfolio/indexhtml これは私のプロフィールが「嘘でいっぱいです」と主張する権利がないと言った、stackoverflowに関する私の最初の投稿なので、あなたの懐疑主義を理解することができますStackoverflowは親切な​​市民として知られている評判の良いコミュニティです。ラムハウンドだけでなく、あなたの情報のために、私はそれを理解しようとすることに取り組んでいる最後の4-5時間を費やし、私はそれを最後に考え出しました。次回はもう少し理解してみてください。ありがとう – TheFooFighter

答えて

1

それは私が大規模なプログラムを使って最適化を心配する必要はありません。

上記のGitには、変更と最適化の詳細が記載されたreadmeがあります。引き分けで

var renderTarget = RenderTarget2D(graphicsDevice, width, height, false, SurfaceFormat.Color, DepthFormat.None, 0, RenderTargetUsage.PreserveContents); 

:loadContentで

3

私は決してXNAで絵を描こうとしたことはありませんが、アイデアのように! だから私はちょっと見渡して、この答えられた質問を見つけました。 ゲームに幸運を祈る。私は、全体のコードリポジトリを画面上に「ペイント」は私の問題にアプローチするために、ここで https://[email protected]/thefoofighter/paint.git

その確かに最善の方法を見つけることができますが、それは私が必要なものないように管理する方法に興味がある人のため XNA draw/paint onto a Texture2D at runtime

+0

Iveはあなたが上で提供したリンクから正確に把握することはできませんでしたが、最終的に問題を解決しました。あなたが興味を持っているなら、質問に対する私自身の答えをチェックアウトすることができます:)。 ありがとうございます – TheFooFighter

+0

問題はありませんが、あなたは本当の答えをあなたの質問に追加してそれを受け入れることができますか? 物事をより明確にする;) – phadaphunk

+0

「自分の質問に答える」という意味を知っていると思いますか? iveは試みたが、私はできるようになる前に私は新しいユーザーから4時間待つ必要がある。私は4時が経過したときにそれを行います:)あなたがそれを見たいのであればここでそれを見つけることができますhttps://[email protected]/thefoofighter/paint.git – TheFooFighter

0

未設定のレンダーターゲット
- - currentPosition
でブラシを描く - - このレンダーターゲット
設定
レンダーターゲットを描画し

この方法では、レンダリングターゲットからテクスチャにデータをセット/アンセットする必要はなく、プレビオを追跡する必要もありません私たちのポジション。