0
public void Draw(SpriteBatch theSpriteBatch)
{
Random rand = new Random();
for(int y = 0; y < map.GetLength(0); y++) {
for(int x = 0; x < map.GetLength(1); x++) {
theSpriteBatch.Draw(tile[rand.Next(0,3)], new Rectangle(x*tileWidth,y*tileHeight,tileWidth,tileHeight),
Color.White);
}
}
}
これを実行すると、タイルが点滅して常に再描画されます。一度描くだけでランダム効果を得るにはどうすればよいですか?これらのタイルをマウスでクリックして変更する方法はありますか?また、1つのタイルを他のタイルよりも優勢にする方法はありますか?C#XNAランダムタイルエンジン
ありがとうございました!私はドローイングがフレームごとに走っているのを知らなかったが、私はそれがちらちら見えるときに問題だったと思った。私はちょうどランダムを得るのをどう扱うか分からなかったが、私は今それを得た。私はtileNums配列で範囲外のインデックスを取得しますが、1つの問題。私はこのint [、] tileNums = new int [0,3]のような配列を作成します。右? – Corey
いや、これらは、各次元のサイズです。この構造は、マップとまったく同じサイズでなければなりませんので、私は '新しいint型だろう[map.GetLengthを(1)、map.GetLength(0)];'(私はそれ 'X、y'、もちろんあなたをしたので、ああ 'Y、X 'およびそれらの逆) –
を行うことができます!私はそれについて考えるようになりました。私に手伝ってくれてありがとう – Corey