2013-03-11 24 views
8

MonoGame/XNA 4で破線を描く最も簡単な方法は何ですか?MonoGame/XNAで破線を描く方法

3Dプリミティブを使用する必要がありますか、それとも簡単なスプライトで実現できますか?

答えて

1

直線(単純な90度のターン)では、スプライトがおそらく最も簡単です。

それがねじれた後、不規則に回すなら

(あなたがしてシェーダに破線を達成HiDefプロファイルを介したカスタムシェーダへのアクセスを持っていれば1は、簡単なもののニーズを続けた場合、あまりにも難しいことではありません)私は3Dプリミティブを使用することをお勧めします。

+0

ありがとうございました!私はどのようにスプライトで破線を描画することができますか分かりません。 スプライトをクリップする方法はありますか(長い行が1つあり、それに応じてクリップしますか) または複数のスプライトを描画して、それを繰り返す必要がありますか? – adrin

+0

発生する2つのオプション私にはすべて白いスプライトがあり、間隔を空けて繰り返し描画しています...またはテクスチャ内に1つ以上のスペースがあり、ラップするようにテクスチャを設定してスケーリングするスプライトが1つあります。 – lzcd

5

bitbucketのユーザーC3は、2Dプリミティブを作成するための素敵なユーティリティクラスを公開しています。これらは、SpriteBatchクラスに拡張メソッドを追加します。リポジトリはここにある:https://bitbucket.org/C3/2d-xna-primitives/wiki/Home


を歓迎今のBitbucket上のMercurialリポジトリを使用して、2D XNAプリミティブプロジェクトの新しい家へようこそ! Windows Phoneと互換性があります。

関数リファレンス

は、このライブラリが提供するパブリックメソッドのすべては、これらのメソッドが内蔵されたかのようにSpriteBatchにあなたは非常に独自のSpriteBatchインスタンスから直接それらにアクセスできることを意味し、拡張メソッドですクラス。この方法でメソッドを呼び出すと、最初のパラメータはすべて無視されます。以下の呼び出しがあります。

パブリックメソッド

DrawArc

DrawCircle

DrawLine

DrawRectangle

FillRectangle

PutPixel

0

問題を2つの部分に分割します。

1)カーブの形状が直線でない場合は、その形状を定義します。

2)その曲線に沿って、点線のテクスチャを持つ三角形のストリップを作成します。