1

非常に基本的なXNA4.0プログラムを開始しました。このプログラムでは、コンテンツローダーを介してドットの小さな赤い画像を読み込みます。赤い点は10x10で、丸みを帯びたように見えるように端が丸みを帯びています。画面上に描画し、XとYの位置をマウスのXとYの位置に更新しています。つまり、基本的にはカスタムの赤いカーソルです。

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

マウスが移動したポイントを保持するVector2ポイントの配列が必要になると思います。更新が発生すると、これらのポイントごとに、背景のTexture2Dにドットがペイントされますか?

おそらくあまり効率的ではありませんが、当時私が考えることができたのはそれだけでした。

Texture2Dのカラーデータの変更についても読みましたが、残念ながら運がありませんでした。

4

3 に答える 3

3

XNAでペイントしたことはありませんが、アイデアは気に入っています。だから私は少し見て回って、この答えられた質問を見つけました、そしてそれがあなたが必要としているものかもしれないことを誰が知っていますか?あなたのゲームで頑張ってください。 XNAは実行時にTexture2Dに描画/ペイントします

于 2012-04-05T13:14:43.220 に答える
1

私が画面上で「ペイント」する方法に興味のある方は、コードリポジトリ全体をここで見つけることができます https://thefoofighter@github.com/thefoofighter/paint.git

それは確かに私の問題に取り組むための最良の方法ですが、それは私がそれをするために必要なことをします、そして私はこれを移植するより大きなプログラムで最適化について心配する必要がないので私はそれをより良くしようとしませんでした。

変更と最適化に関する詳細情報を提供する上記のGitのreadmeがあります。

于 2012-04-05T21:08:36.637 に答える
0

loadContentで:

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

描画時:
-このrendertargetを設定します-currentPosition
でブラシを描画します-rendertargetの設定を
解除します-rendertarget
を描画します

このように、レンダーターゲットからテクスチャにデータを設定/設定解除したり、前の位置を追跡したりする必要はありません。

于 2013-02-15T16:50:17.840 に答える