Приставки
Nintendo (Dendy)
Nintendo 64
Sega Genesis
Sega CD / 32x
Master System
Super Nintendo
Turbo Grafx 16
Sega Saturn
Sony PlayStation
GameBoy Advance
GameBoy / Color
Game Gear
Atari
Другие

Утилиты
Системные утилиты
GoodXXXX
Sega CD / 32x
Nintendo 64
Переводы, хакинг
Музыка

Мир приставочных игр

Версия 2.00a

Leonis © 2002-2009
Команда Новости Помощь Ссылки
ПОМОЩЬ
Литература про игры
Предыдущая Следующая

В свою очередь, системный класс 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);


Предыдущая Следующая

Горяченькое

Друзья

Hosted by uCoz