Предыдущая Следующая
Здесь мы используем метод Next(), с помощью которого при определении координаты по оси X задаем случайное значение в диапазоне от 50 пикселей до screenWidth - sprite.spriteTexture.Width / 12 — 50 или в числовом эквиваленте 1280 - один фрейм анимационной последовательности — 5 0 пикселей от кромки экрана для красоты, что позволяет нам при каждом новом определении места вывода спрайта на экране по оси X задавать новое значение в пределах видимой области экрана.
С выбором случайных значений для новой позиции спрайта игрок не будет знать, в каком месте должен выводиться спрайт на экран, и впоследствии не сможет приспособиться к вашей игре. Новое место будет всегда неожиданным как для игрока, так, собственно, и для вас, потому что используется метод Next() с двумя параметрами, задающими определенный диапазон значений. Дополнительные 50 пикселей, которые мы отняли от ширины дисплея с двух сторон, необходимы просто для красоты, дабы спрайты не рисовались вплотную к краям экрана телевизора.
Что касается задания координаты по оси Y, то она, как вы заметили, отрицательна. Это позволяет рисовать спрайт в верхней части экрана за пределами видимости. После чего спрайт мы перемещаем вниз (рис. 8.2). Таким образом достигается эффект плавного появления, или выезда спрайта из верхней части экрана и всего игрового пространства. Это красиво, эффектно, и если этого не делать и рисовать спрайт в положительных значениях оси Y, то объекты будут появляться резко и как бы ни с того ни с сего. Так делать нельзя, по крайней мере в нашей игре точно. В других играх могут быть свои задачи, поэтому этот подход имеет право на жизнь.
После создания метода MoveSprite() необходимо поместить вызов этого метода в метод Update(GameTime gameTime) класса Game1. Тогда на каждой итерации игрового цикла будет происходить вызов метода MoveSprite() и соответственно обновление состояния спрайта, а также обработка ситуации с выходом спрайта из зоны видимости. Исходный код проекта вы найдете на компакт-диске в папке Code\Chapter8\MoveSprite, а мы переходим к рассмотрению следующего проекта MoveSpriteArray.
8.2. Проект MoveSpriteArray
Задача этого проекта заключается в том, чтобы добавить в игру дополнительные объекты. Сделать это можно несколькими способами, но самый «продвинутый» и профессиональный способ сводится к организации простого массива данных. Поэтому в проекте MoveSpriteArray мы реорганизуем способ объявления и создания спрайта на создание массива данных, состоящего из пяти спрайтов. Для этого Предыдущая Следующая
|