2011-12-21 8 views
1

私はXNA C#でかなり新しく、毎秒点滅するXNA C#でモデルを作成する方法を知りたいと思います。私は自分のモデルに致命的な影響を与えようとしています。XNA C#モデルを点滅させるにはどうすればよいですか?

現在のところ、自分のモデルの表示を毎秒falseとtrueに設定することを私自身が考えています。

ありがとうございました。

EDIT:XNA C#でmodel.visible = falseが見つかりませんでしたか?

答えて

6

あなたのアイデアは問題ありませんが、表示するかどうかを追跡する必要があります。は、表示されているときにのみ描画します。すべてのオブジェクトは、フレームごとにコードによって明示的に再描画されます。表示されないようにする必要があるときには描画しないでください。

これを行うための組み込みの方法はありません(私が知っている)。目に見えないオブジェクトに対して描画関数を呼び出すので、それがあればあまり意味がありません。目に見えないオブジェクトを描画しない方が理にかなっています。

点滅が機能するようにするには、最後に可視性が反転してからの経過時間を追跡し、その時間が1秒を超えたときに可視性を切り替える必要があります。

if (gameTime.TotalGameTime.TotalMilliseconds >= nextBlinkTime) { 
    modelVisibility = !modelVisibility; 

    nextBlinkTime = gameTime.TotalGameTime.TotalMilliseconds + 1000; 
} 

より複雑なシナリオの場合(例えば、複数のモデルがなど切り替え可視性を、必要とする)、私は再利用可能なクラスにこの振る舞い離れてあなたは抽象的な提案:たとえば、あなたのUpdate()方法では、あなたはこのような何かを持っていると思います。

+0

ああ私の神、あなたはポイントを持っています!単純に1秒間描画しないで、次の1秒間に描画します。どのように私はモデルを透明にしようとしている愚かです。ありがとう! – Zainu

+2

@XNA:うわー、振り返ってみるとすべてが分かります;-)喜んで助けてくれました – Cameron

関連する問題