Предыдущая Следующая
В свою очередь, системный класс Random позволяет в программах генерировать для заданной переменной какое-то новое случайное значение. В состав класса входит метод Next(), который при каждом новом вызове формирует последовательность случайных чисел. Метод Next() имеет три следующие модификации:
□ Random.Next() - возвращает положительное случайное число;
□ Random.Next(int32) - возвращает положительное случайное число, где единственный параметр метода - это верхняя граница, или максимальное число, выше которого не может быть сгенерировано новое значение. Например, если вызвать метод вот так: Next(2 0), то сгенерированное число не будет выходить из диапазона от 0 до 20;
□ Random.Next(int32, int32) - этот вид метода с двумя параметрами позволяет задавать диапазон от выбранного минимального числа до максимального числа. Например, вызов метода со значениями Next(15, 2 0) задаст диапазон для случайного числа в пределах от 15 до 20.
Класс Random и метод Next() нам будут необходимы для задания новой позиции на экране телевизора в методе MoveSprite() класса Gamel. Это новый метод, который добавляется в текущий проект и выглядит следующим образом:
public void MoveSprite() {
sprite.spritePosition += sprite.speedSprite; if (sprite.spritePosition.Y > screenHeight)
{
sprite.spritePosition = new Vector2(rand.Next(5 0, screenWidth -sprite.spriteTexture.Width / 12 - 50), -200);
}
}
В первой строке кода метода MoveSprite() мы изменяем позицию объекта по оси Y, а значит, перемещаем спрайт на экране сверху вниз. Если развернуть эту строку записи (чтобы вам было понятно), то исходный код движения спрайта будет выглядеть следующим образом:
sprite.spritePosition.X += sprite.speedSprite.X; // где скорость по X равна 0 sprite.spritePosition.Y += sprite.speedSprite.Y; // где скорость по Y равна 6
Такая запись также может иметь место в исходном коде метода MoveSprite(), но представленный первый вариант несколько профессиональнее и быстрее работает.
Оставшиеся три строки кода метода MoveSprite() обрабатывают ситуацию выхода спрайта за пределы экрана с нижней стороны экрана. Как только позиция спрайта оказывается больше, чем максимальный размер высоты экрана, то в ис-
Проект MoveSpriteArray 159
ходном коде метода MoveSprite() происходит вход в конструкцию if/else, где определяется новая точка вывода спрайта на экран.
sprite.spritePosition = new Vector2(rand.Next(5 0, screenWidth -sprite.spriteTexture.Width / 12 - 50), -200); Предыдущая Следующая
|