1

私は現在学校のプロジェクトに取り組んでおり、インストラクターが大量のコードなしでこれを行う方法を説明するクラスを欠席しました。

割り当ては次のとおりです。

XNAアプリケーションを作成すると、50個のアニメーション化されたスプライトが下向きに加速します。スプライトがウィンドウの下部に当たったら、バウンドさせます。スプライトが常に完全にウィンドウ内にあるように、各スプライトをランダムな場所にスポーンします。ランダムな位置のY成分を0から300の間に制限します。最後に、スペースバーを押すとスプライトが元の位置にリセットされるようにします。

これはサンプル画像へのリンクです。担当者は画像を挿入するのに十分な高さではありません

http://hypergrade.com/grader/file_download.php?id=132

単一のスプライトを描画してアニメーション化しています。同じTexture2Dの場所をランダムに生成するためのガイダンスが必要です。

4

1 に答える 1

0

Randomクラスを使用する必要があります。

 // Make one instance of random, the seed is the milliseconds, other way random always returns the same sequence of random numbers.
 static readonly Random rnd = new Random(DateTime.Nom.Milliseconds);

 List<Sprite> Sprites = new List<Sprite>(50); 
 public void Update()
 {
      //Add new sprites with a 90% or probability 
      if (Sprites.Count<50 && rnd.Next(100) > 90)
      {
          Sprite sprite = new Sprite();

          // This X calculation makes the sprite not to get out of the screen at both sides
          sprite.Pos.X = (float) ( (0.1f + 0.8f * rnd.NextDouble()) * GraphicsDevice.Viewport.Width);
          sprite.Pos.Y = (float) ( rnd.NextDouble() * 300 );

          Sprites.Add(Sprite);
      }
 }

もちろん、deSpriteクラスはあなた次第です..:)

于 2012-03-15T00:17:43.050 に答える