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);
}
}
}
Когда я это делаю, он просто мерцает плитки и постоянно перерисовывает их. Что мне делать, чтобы получить случайный эффект с ним только один раз? Есть ли способ, которым я мог бы нажимать на эти плитки с помощью мыши и изменить их? Кроме того, есть ли способ сделать одну плитку более распространенной, чем другие?C# XNA Случайный черепичный двигатель
Спасибо! Я не знал, что нарисовал пробег каждый кадр, но я подумал, что это была проблема, когда я видел, как он мерцал. Я просто не был уверен, как справиться с получением случайного, но я получил его сейчас. Одна проблема, хотя я получаю индекс за пределами массива tileNums. Я создаю массив как этот int [,] tileNums = new int [0,3]; правильно? – Corey
Нет, это размеры каждого измерения. Эта структура должна быть того же размера, что и ваша карта, поэтому я бы сделал 'new int [map.GetLength (1), map.GetLength (0)];' (так как я сделал это 'x, y', конечно, вы могли бы делать 'y, x' и отменить их) –
Ahhh! Хорошо, что теперь имеет смысл, я думаю об этом: p. Спасибо, что помогли мне – Corey