Предыдущая Следующая
322 Формируем трехмерную сцену
Небо и тучи 323
В большинстве игр этот механизм используется повсеместно, но если камера в игре двигается, то добавляется более сложный механизм, основанный либо на прокрутке текстуры фона в разных направлениях, либо на использовании кубических текстур для представления небесной оболочки (Sky Box). У нас вся трехмерная сцена попроще, поэтому вполне достаточно простой текстуры с пейзажем установленной на заднем фоне игры.
Текстура пейзажа была взята с сайта Turbosquid.com. Это графическое изображение в формате JPG распространяется бесплатно. Пейзаж создан художником под именем Hal9000 (рис. 21.3).
Рис. 21.3. Страница изображения hallake001 на сайте Turbosquid.com
Графическое изображение этого пейзажа оказалось очень большим по ширине (3000 пикселей), поэтому пришлось обрезать его по бокам, укоротив изображение по ширине до 1500 пикселей. Связано это с тем, что некоторые видеокарты не в силах загрузить слишком большой по размеру (ширина или высота) графический файл. Если у вас при запуске программ возникает сообщение подобного характера, то эта проблема состоит в мощности видеоадаптера, и вам необходимо либо подкупить новую видеокарту (что дороже), либо уменьшить размер изображения (что дешевле).
Для добавления фона в игру объявим новую переменную background.
private Texture2D background;
Изображение фона статично, поэтому можно обойтись и без объекта класса Sprite. После объявления объекта background в методе LoadGraphics-Content() загружаем пейзаж в игру.
background = content.Load<Texture2D>("Content\\Textures\\hallake0 01");
А затем в методе Draw() рисуем его на экране монитора.
spriteBatch.Begin(SpriteBlendMode.AlphaBlend);
spriteBatch.Draw(background, new Vector2(0, -50), Color.White); spriteBatch.End();
При этом само изображение фона мы рисуем самым первым, не забывайте, что каждый последующий рисуемый элемент графики всегда накладывается поверх предыдущего!
Изображение hallake0 01 по высоте равно 500 пикселям. По оси Y мы сместили изображение вверх на 50 пикселей. Сделано это просто для красоты. То есть после того как изображение было загружено, а игра запущена на компьютере, я просто подобрал оптимальное местоположение фона, исходя из общей картинки на экране, и не более того.
В листинге 21.1 вы найдете полный исходный код текущего примера, где все нововведения выделены жирным шрифтом. Сам проект располагается на компакт-диске в папке Code\Chapter21\Plane. Предыдущая Следующая
|