Простая 2d игра. Получение двух спрайтов из одного изображения

Здравствуйте.

Игры… Это одни из самых популярных программ, ради которых многие пользователи и покупают компьютеры и ноутбуки. Наверное, ПК не стали бы так популярны, если бы на них не было игр.

И если раньше для того, чтобы создать какую-нибудь игру необходимо было обладать специальными знаниями в области программирования, рисования моделей и пр. - то сейчас достаточно изучить какой-нибудь редактор. Многие редакторы, кстати, достаточно просты и разобраться в них сможет даже начинающий пользователь.

В этой статье хотелось бы затронуть такие популярные редакторы, а так же на примере одного из них разобрать пошагово создание какой-нибудь простой игры.

Под 2D - понимают двумерные игры. Например: тетрис, кот-рыболов, пинбол, разные карточные игры и пр.

Пример-2D игры. Карточная игра: Солитер

1) Game Maker

Сайт разработчика: http://yoyogames.com/studio

Процесс создания игры в Game Maker…

Это один из самых простых редакторов для создания небольших игр. Редактор выполнен достаточно качественно: в нем легко начать работать (все интуитивно понятно), вместе с тем большие возможности для редактирования объектов, комнат и пр.

Обычно в этом редакторе делают игры с видом сверху и платформеры (вид с боку). Для более опытных пользователей (те, которые немного разбираются в программирование) есть специальные возможности по вставке скриптов и кода.

Нельзя не отметить большое разнообразие эффектов и действий, которые можно задавать различным объектам (будущим персонажам) в этом редакторе: количество просто поражает - более нескольких сотен!

2) Construct 2

Сайт: http://c2community.ru/

Современный игровой конструктор (в прямом смысле этого слова), позволяющий даже начинающим пользователям ПК делать современные игры. Причем, хочу подчеркнуть, при помощи этой программы игры можно изготавливать для разных платформ: IOS, Android, Linux, Windows 7/8, Mac Desktop, Web (HTML 5) и пр.

Этот конструктор очень похож на Game Maker - здесь так же нужно добавлять объекты, затем прописать им поведение (правила) и создать различные события. Редактор построен по принципу WYSIWYG - т.е. вы сразу же будете видеть результат по мере создания игры.

Программа платная, хотя для начала будет предостаточно и бесплатной версии. Отличие различных версий описаны на сайте разработчика.

2. Программы для создания 3D игр

(3D - трехмерные игры)

1) 3D RAD

Сайт: http://www.3drad.com/

Один из самых дешевых конструкторов в формате 3D (многим пользователям, кстати, хватит и бесплатной версии, у которой ограничение на обновление сроком на 3 месяца).

3D RAD наиболее легкий конструктор в освоении, программировать здесь практически не нужно, разве что за исключением прописывания координат объектов при различных взаимодействиях.

Самый популярный формат игр, который создают с помощью этого движка - это гонки. Кстати, скриншоты выше это лишний раз подтверждают.

2) Unity 3D

Сайт разработчика: http://unity3d.com/

Серьезный и комплексный инструмент для создания серьезных игр (извиняюсь за тавтологию). Рекомендовал бы переходить к нему после изучения других движков и конструкторов, т.е. с набитой рукой.

В пакет Unity 3D входит движок, который полностью позволяет задействовать возможности DirectX и OpenGL. Так же в арсенале программы возможность работы с 3D моделями, работа с шейдерами, тенями, музыкой и звуками, огромная библиотека скриптов под стандартные задачи.

Пожалуй, единственный недостаток у этого пакета - это необходимость знания программирования на C# или Java - часть кода при компиляции придется дописывать в «ручном режиме».

3) NeoAxis Game Engine SDK

Сайт разработчика: http://www.neoaxis.com/

Бесплатная среда разработки практически любых игр в формате 3D! При помощи данного комплекса можно делать и гонки, и стрелялки, и аркады с приключениями…

Для движка Game Engine SDK в сети имеется немало дополнений и расширений под множество задач: например, физика автомобиля или самолета. При помощи расширяемых библиотек вам даже не понадобиться серьезное знание языков программирования!

Благодаря специальному плееру, встроенному в движок, игры созданные в нем могут воспроизводиться во множестве популярных браузерах: Google Chrome, FireFox, Internet Explorer, Opera и Safari.

Game Engine SDK распространяется как бесплатный движок для некоммерческих разработок.

3. Как создать 2D игру в редакторе Game Maker - пошагово

Game Maker - очень популярный редактор для создания не сложных 2D игр (хотя разработчики уверяют, что игры в нем можно создавать практически любой сложности).

В этом небольшом примере я хотел бы просто показать пошаговую мини-инструкцию по созданию игр. Игра получиться очень простая: по экрану будет перемещаться персонаж «Соник» стараясь собирать зеленые яблоки…

Начав с простых действий, добавляя попутно новые и новые возможности, кто знает, может ваша игра и станет со временем настоящим хитом! Моя же цель в этой статье, лишь показать с чего начать, ведь начало - это самое трудное для большинства…

Заготовки для создания игры

Прежде чем приступить непосредственно к созданию любой игры, вам нужно сделать следующее:

1. Придумать персонажа своей игры, что он будет делать, где находиться, как игрок будет им управлять и пр. детали.

2. Создать картинки своего персонажа, объекты с которыми он будет взаимодействовать. Например, если у вас будет медведь собирать яблоки - значит вам минимум нужно две картинки: медведя и самих яблок. Так же возможно вам понадобиться фон: большая картинка на которой и будет происходить действие.

3. Создать или скопировать звуки для своих персонажей, музыку, которая будет проигрываться в игре.

В общем и целом нужно: собрать все что будет необходимо для создания. Впрочем, можно будет в последствии добавить к существующему проекту игры все что забыли или оставили на потом…

Пошаговое создание мини-игры

1) Первое что необходимо сделать - это добавить спрайты наших персонажей. Для этого на панели управления программы есть специальная кнопка в виде рожицы . Нажимаем ее для добавления спрайта.

Кнопка создания спрайта.

2) В появившемся окне нужно нажать кнопку загрузки спрайта, затем указать его размеры (если требуется).

Загруженный спрайт.

3) Таким образом нужно добавить все свой спрайты в проект. В моем случае получилось 5 спрайтов: Соник и разноцветные яблоки: зеленый кружок, красный, оранжевый и серый.

Спрайты в проекте.

4) Далее в проект нужно добавить объекты. Объект - это важная деталь в любой игре. В Game Maker под объектом понимается игровая единица: например, Соник, который будет перемещаться на экране в зависимости от клавиш, которые вы будете нажимать.

Вообще, объекты - достаточно сложная тема и объяснить ее в теории в принципе невозможно. По мере работы с редактором, вы более детально ознакомитесь с огромной кучей возможностей объектов, которые предлагает вам Game Maker.

А пока создадим первый объект - нажимаем кнопку «Добавить объект» .

Game Maker. Добавление объекта.

Затем для объекта прописываются события : их может быть десятки, каждое событие - это поведение вашего объекта, его перемещение, звуки связанные с ним, управление, очки, и пр. игровые характеристики.

Чтобы добавить событие, щелкните кнопку с одноименным названием - затем справа в столбике выберите действие для события. Например, перемещение по горизонтали и вертикали, при нажатии клавиш стрелок .

Добавление событий к объектам.

Game Maker. Для объекта Соник добавлены 5 событий: перемещение персонажа в различных направлениях при нажатии клавиш-стрелок; плюс задано условие при пересечении границы игровой зоны.

Кстати, событий может быть очень много: здесь Game Maker не мелочиться, программа предложит вам много всего:

Задание перемещение персонажа: скорость перемещения, прыжки, сила прыжка и пр.;

Накладывание произведения музыки при различных действиях;

Появление и удаление персонажа (объекта) и т.д.

Важно! Для каждого объекта в игре нужно прописать свои события. Чем больше событий для каждого объекта вы пропишете - тем разностороннее и с большими возможностями получиться игра. В принципе, даже не зная что конкретно сделает то или иное событие, можно тренироваться добавляя их и смотреть как поведет себя игра после этого. В общем-то, огромное поле для экспериментов!

6) Последнее и одно из важных действий - создание комнаты. Комната - это своего рода этап игры, уровень, на котором и будут взаимодействовать ваши объекты. Чтобы создать такую комнату, нажмите кнопку со следующим значком: .

Добавление комнаты (этапа игры).

В созданной комнате, при помощи мышки, можно расставить наши объекты на этапе. Настроить фон игры, задать название окна игры, указать виды и пр. В общем - целый полигон для экспериментов и работы над игрой.

7) Чтобы запустить полученную игру - нажмите кнопку F5 или в меню: Выполнить/обычный запуск.

Запуск полученной игры.

Game Maker откроет перед вами окно с игрой. Фактически, вы можете смотреть, что у вас получилось, экспериментировать, играть. В моем случае Соник может перемещаться в зависимости от нажатия клавиш на клавиатуре. Своего рода мини-игра (эх, а были времена, когда белая точка, бегающая по черному экрану, вызывала дикое удивление и интерес у народа… ).

Полученная игра…

Да, конечно, полученная игра примитивная и очень проста, зато пример ее создания очень показателен. Далее экспериментируя и работая с объектами, спрайтами, звуками, фонами и комнатами - можно создать очень даже не плохую 2D игру. Чтобы создавать подобные игры лет 10-15 назад необходимо было обладать специальными знаниями, сейчас - достаточно уметь вращать мышку. Прогресс!

С наилучшими! Всем удачного игро-строя…

Доброго времени суток! Перед тем как приступить непосредственно к созданию 2D шутера мне хотелось бы немного размыть эту статью вводной частью. Итак, сейчас Вы читаете мою первую статью на этом сайте. Честно сказать я не профи в разработке игр и работаю пока преимущественно с Game Maker, дабы набить руку перед серьезными проектами. Так вот, в этой статье, а вернее сказать в этом уроке я попробую снабдить Вас некоторыми своими знаниями в области геймдева. Конкретно, я расскажу о том, как сделать наипростейший 2D шутер в стиле Контры.

Ладно. Приступим к созданию игры. Для начала нам нужно запастись спрайтами:

player_go_right и player_go_left – спрайты движения игрока влево и вправо (анимация).


gun_right – спрайт ружья, направленного вправо. Для этого спрайта установите центр вращения на рукояти, как показано на скриншоте.
bullet_spr – спрайт пули. Никаких особых критериев.
wall_sprite – спрайт стены. Желательно размера 32x32.

Когда спрайты готовы, самое время создать необходимые объекты и естественно настроить их. Начнем с самого простого – стены. Создайте объект wall_obj и присвойте ему спрайт wall_sprite . Также для этого объекта установите свойство Твердость(Solid) .

Далее переходим к пулям. Создайте объет bullet_obj и присвойте ему bullet_spr . Чтобы в будущем пуля вела себя более естественно в событии Столкновнение с wall_obj добавьте действие Destroy Instance () . По желанию можете увеличить глубину пули.

Все второстепенные объекты готовы. Приступаем к самому сложному. Создайте объект игрока player_obj и присвойте ему спрайт player_go_right или player_go_left . Для player_obj в событии Create введите скрипт():

200?"200px":""+(this.scrollHeight+5)+"px");">
image_speed=0
right=true
gravity=1

Этот скрипт запускает гравитацию для игрока и уменьшает скорость спрайта до 0. Так же этим кодом мы вводим новую переменную right , с помощью который мы в дальнейшем будем определять направление игрока.

Перейдем к управлению. В событии Step напишите следующий код():

200?"200px":""+(this.scrollHeight+5)+"px");">
//Движение вправо
if keyboard_check(vk_right) then
hspeed=5

//Движение влево
if keyboard_check(vk_left) then
hspeed=-5

//Под ногами не пусто? Нажата ли кнопка вверх?
if (not place_free(x,y+3)) and (keyboard_check(vk_up)) then
vspeed=-15 //Прыжок
//Если ничего не нажато
if keyboard_check(vk_nokey) then
begin
hspeed=0
image_index=0
image_speed=0
end;

Этот скрипт позволит игроку ходить влево, вправо и даже прыгать.

Итак, гравитация есть, управление есть, а опоры нет. Чтобы опора появилась добавьте событие Столкновение с wall_obj и введите в это событие:

200?"200px":""+(this.scrollHeight+5)+"px");">
vspeed=0

Ну вот, практически все готово. Игрок уже может смело прыгать по платформе. Но к сожалению анимации движения не будет. Для того чтобы это исправить в событие press введите скрипт:

200?"200px":""+(this.scrollHeight+5)+"px");">
sprite_index=player_go_left //Смена спрайта
image_speed=0.2 //Скорость спрайта
right=false //Игрок не повернут направо

И в событие press введите аналогичный скрипт:

200?"200px":""+(this.scrollHeight+5)+"px");">
sprite_index=player_go_right
image_speed=0.2
right=true//Игрок повернут направо

Осталось только научить игрока стрелять. Для начала в этих целях мы дадим ему оружие. В этих целях введите в событие Draw следующий скрипт:

200?"200px":""+(this.scrollHeight+5)+"px");">
//Определение направления оружия
rotate=point_direction(x,y,mouse_x,mouse_y);

//Игрок повернут направо?
if right=true then
gun_x=x+15 //Смена положения ружья по X
else
gun_x=x+1

Gun_y=y+15//Смена положения ружья по Y

Draw_sprite(sprite_index,image_index,x,y) //Прорисовка игрока
draw_sprite_ext(gun_right,0,gun_x,gun_y,image_xscale,image_yscale,rotate,image_blend,image_alpha) //Прорисовка ружья

Хочу обратить Ваше внимание на то, что gun_x и gun_y возможно придется подгонять вручную , если при запуске игры оружие будет висеть не в руках у игрока.

Если же все работает замечательно, давайте продолжать. Добавьте событие Glob Left Pressed и в него перенесите действие Create Moving () с следующими значениями:

Object = bullet_obj;
x= gun_x
y = gun_y
speed= 10
direction= rotate

Ну вот и все! Смело расставляйте объекты в комнате и наслаждайтесь своей игрой. Кстати, не забудьте оставить комментарий.

Разработка двухмерных игр ещё никогда не была настолько удобной. Благодаря современным движкам, любой желающий, может создать уникальный мир с чистого листа, даже без навыков программирования.

Погрузитесь в волшебный процесс создания игр. Почувствуйте всю прелесть этого занятия, и, возможно, выберите его в качестве основной жизненной деятельности. Развивайте свое мышление и навыки, чтобы порадовать игроков более качественными развлечениями.

Какой движок использовать?

На сегодняшний день разработано множество движков для создания 2D игр. Обилие предложений, часто сводит новичков с толку, заставляя выбрать далеко не лучший инструмент.

Чтобы сберечь ваше время и помочь выбрать подходящую программу, мы собрали лучшие движки для создания 2D игр, в один каталог. Здесь вы можете ознакомиться с подробным описанием, посмотреть скриншоты и видеоуроки. Сделать правильный выбор вам помогут отзывы пользователей и рейтинг материалов. Скачивайте подходящие программы для создания 2D игр, через торрент или файлообменные сервисы (MEGA или Яндекс.Диск).

Любопытный вопрос - почему даже сейчас, со всеми технологиями, мы видим столько 2d игр? Почему люди до сих пор создают 2d игры и почему не делать игры в 3d?

Поговорим о разнице двухмерной и трехмерной графики и обсудим, какие недостатки есть у каждой, с точки зрения разработчика и игрока.

Ну и поговорим в целом про создание 2d и 3d игр.

Разница между 2D и 3D

Думаю не стоит говорить, что такое вообще 2d игры и что такое двухмерное пространство. Но если вы вдруг не знаете, это когда у вас есть две оси координат, X и Y.

3d игры и 3д графика - это подразумевает 3 оси координат, к X и Y добавляется еще и Z (высота).

Можно показать разницу 3d vs 3d на примере рисунка:

Думаю понятно, где тут двухмерный рисунок, а где трехмерный


Хотите, можем немного уйти в философию и сказать, что на самом-то деле, оба рисунка - двухмерные, так-как любой рисунок имеет только 2 измерения.

Тут есть лишь ощущение глубины (трехмерности) и третьего измерения, реальное 3d нельзя показать на плоскости. Мы можем понять, что что-то 3d, только если программа, через которую мы смотрим на объект, позволяет нам менять угол и точку зрения.

Хотя тут есть довольно любопытные вещи.


Например, есть такая штука как псевдотрёхмерность


Может быть вы помните какие-то такие гоночки?


Так вот, тут создаётся ощущение 3d, хотя 3d тут нет. Просто объекты которые дальше - меньше, и наоборот.

По сути дела, любая игра с изометрической графикой - это псевдотрёхмерность.

Еще можно глянуть игру Казаки, вторую часть.


Казаки II


Вроде 2d игра, а фиг поймёшь. Войска дальше от камеры - меньше. Кусты и деревья вдалеке - меньше. Создаётся ощущение 3d.

Ну и понятное дело, если показать вам чисто трехмерную игру, вы сразу поймёте что она трехмерная. А если бы вы не играли в неё и не знали, что она 3d, как доказать, что это не просто двухмерная картинка?



Ощущение трехмерности могут придавать тени, освещение, размер объектов в зависимости от дистанции, но не всегда это означает 3д игру. Бывают редкие исключения. Так-же не всегда 3d игра - это где можно менять угол и точку обзора.

Я знаю, что вам может взорвать мозги. Древняя, но очень крутая игра - total annihilation


Запихнули 3d объекты на 2d карту


Понятия не имею, делал-ли кто-то еще такое. Там вообще взрыв мозга когда играешь. Самолёт делает пируэты, набирает высоту, и он абсолютно трехмерный (хотя и модель простая, игра 1997 года!), делает он всё это в двухмерной плоскости. Короче, мозг - бум.

Хорошо, примеры игр в разных измерениях мы посмотрели. Следующий вопрос:

Какие игры лучше? Двухмерные или трехмерные?

Во-первых, что значит "лучше"? Лучше для кого? Во-вторых, у людей разные вкусы. Если оценивать с графической точки зрения, есть уродливые 3D игры, которые лучше-бы делали в 2D, и есть отличные и прекрасные 2D игры, которым 3D нафиг не надо.

Пример красивой 2D игры? Да их миллион. Вкусы у всех разные, но например:


Machinarium 2


Это квест. Такое рисовать - гигантский труд. И в итоге - это произведение искусства. А можно брать готовые текстуры и 3D модели, и ляпать очередную "три дэ" игрулю, без какой-либо индивидуальности и вкуса.

Короче, нет такого, что трехмерные игры лучше двухмерных, или наоборот. Всё зависит от конкретной игры. Есть плохие и хорошие 2D игры, есть плохие и хорошие 3D игры.

Графика - это лишь часть игры. Очень существенная, но не единственная.

Если-бы графика была в играх главной, Майнкрафт не набрал-бы такую популярность.

Разработка 3D игр

Я делаю игры в качестве хобби и 3D игры я не делал. Просто не лез в это. Как и не лез в онлайн игры. Однако, вот какие особенности есть у разработки 3д игр, многие из них объясняют, почему разработчики, которые делают , редко лезут в 3D.

  • Математика существенно сложнее. Векторы, физика, новое измерение. Всё это сильно усложняет процесс разработки.
  • В следствии предыдущего пункта, гораздо сложнее достигать хорошего быстродействия игры, а оптимизация влияет куда сильнее на итоговый продукт.
  • Анимации в 3D это ад. Сам не знаю, у меня хобби - рисование () и я пробовал анимации в 2D. Чуть не умер от усердия. Даже представить себе не могу анимации в 3D. Да, я знаю, что это сейчас чуть легче, есть готовые модели, есть какие-то технологии, но всё ровно, анимации в 3D это жесть. А как вообще делать 3д игру без анимации?
  • Требования к софту, железу, оперативке и процессору значительно выше. 3д игры делаются так-же на консоли или например на планшеты, а там нет огромной памяти и мощности. А сделайте плохо - все будут критиковать графику. Сделайте хорошо, но медленно - критики будет еще больше.
  • Такие вещи как тени и освещение очень затратны. Я, если честно даже и не представляю как это всё делается. Но понятно что это очень затратно.
  • Все 3D ресурсы дольше обрабатываются. Текстуры, анимации и т.д. Чисто технически 3д игру дольше делать, программы такие.
  • Угол обзора и камера. С этим тоже нужно возиться. Плохой угол может всю игру испортить и от угла обзора сильно зависит общее восприятие игры.
  • куда сложнее. Тут не просто расставить объекты по карте нужно, тут еще и нужно быть архитектором. Да и объекты ставить нужно еще и в высоту.
  • Инструменты для 3д графики и игр сложнее, чем для 2д игр.
Всё это - самые базовые проблемы и сложности при создании 3d игр. Есть и еще.

Как видите, создание 2d игр занимает куда меньше ресурсов и как следствие, сделать 2д игру можно быстрее, и можно потратить больше ресурсов на маркетинг, звук, тестирование или на проработку игровых механик.

3d игры - это как-бы следующий уровень, для них отдельный рынок и у них свои конкуренты - другие 3d игры. Это другая лига, играть там дано не всем.

Я думаю после этого понятно, почему не стоит делать 3d игру своим первым проектом ну и надеюсь, что мне удалось объяснить чем отличаются двухмерные и трехмерные игры. Отличаются они не только графикой, отличий масса. Как для игрока так и для разработчика.

Поэтому в качестве старта рекомендуется создание 2d игр. Ну а потом, когда наберётесь опыта, можно делать 3d игры. Хотя, если говорить откровенно, существует очень мало инди-разработчиков, кто в одиночку осиливают полноценную и хорошую 3D игру, примеры реально единичны. Большая часть 3D игр разрабатываются большими компаниями и командами из сотен человек.

В первой главе вы найдете основную информацию по загрузке и установке Unity и подготовке первой сцены нашей игры.

Настройка среды в Unity

Начнем с самого простого: загрузки и настройки Unity .

Загрузите последнюю версию с официального сайта или торрента и запустите установочный файл.

Для редактирования кода в Unity (4.0.1 и выше) служит редактор MonoDevelop. Если вы работаете в Windows, вы можете (и я вам советую) использовать альтернативый редактор Visual Studio 2013 Desktop (C#) для Windows , после чего в настройках Unity измените редактор по умолчанию на Visual Studio.

Полезно знать: невозможно использовать отладчик Visual Studio 2013 Express с Unity. Вы должны иметь Pro версию Visual Studio и купить UnityVS плагин. С версией Express, вы будете иметь лучший редактор кода, но отсутствие отладчика сведет на нет все его достоинства.

Mac OS X

Заметка о папке Resources : если вы уже работали с Unity, вы знает, что Resources – полезная и уникальная папка. Она позволяет загрузить в скрипт объект или файл (с помощью статичного класса Resources). Она понадобится нам в самом конце (в главе, посвященной меню). Проще говоря, пока мы не будем ее добавлять.

Наша первая игровая сцена

Панель Hierarchy (Иерархия) содержит все объекты, которые доступны в сцене. Это то, чем вы манипулируете, когда начинаете игру с помощью кнопки "Play".

Каждый объект сцены является игровым объектом для Unity. Вы можете создать объект в главной сцене, или в другом объекте игры. Также вы можете в любое время переместить объект чтобы изменить его родителя.


Как вы можете видеть здесь, у нас здесь 3 потомка для объекта Level .

В Unity можно создать пустой объект и использовать его в качестве "папки" для других игровых объектов. Это упростит структуру вашей сцены.

Убедитесь, что все они имеют координаты (0, 0, 0) и тогда вы сможете легко их найти! Пустые объекты никак не используют свои координаты, но они влияют на относительные координаты их потомков. Мы не будем говорить об этой теме в этом уроке, давайте просто обнулим координаты ныших пустых объектов.

Заполнение сцены

По умолчанию, новая сцена создается с объектом Main Camera (Главная камера). Перетащите ее на сцену.

Для начала создайте эти пустые объекты:

Scripts Мы добавим наши скрипты сюда. Мы используем этот объект, чтобы прикрепить сценарии, которые не связаны с объектом – например, скрипт гейм-менеджера. Render Здесь будет наша камера и источники света. Level

В Level создайте 3 пустых объекта:

  • 0 - Background
  • 1 - Middleground
  • 2 - Foreground

Сохраните сцену в папке Scenes . Назовите ее как угодно, например Stage1 . Вот, что у нас получилось:

Совет: по умолчанию игровой объект привязан к положению родителя. Это приводит к интересному побочному эффекту при использовании объекта камеры: если камера является дочерним объектом, она автоматически будет отслеживать положение родителя. Если же она является корневым объектом сцены или находится внутри пустого игрового объекта, она всегда показывает один и тот же вид. Однако если вы поместите камеру в движущийся игровой объект, она будет следовать за его передвижениями в пределах сцены. В данном случае нам нужна фиксированная камера, поэтому мы помещаем ее в пустой объект Render . Но запомните это свойство объекта камеры, оно может вам пригодиться. Мы подробно остановимся на этой теме в главе "Паралаксный скроллинг".

Мы только что создали базовую структуру нашей игры. На следующем этапе мы начнем делать забавные вещи: добавим на сцену фон и кое-что еще!

Добавляем фон в сцену

Наш первый фон будет статическим. Воспользуемся следующим изображением:


Импортируйте изображение в папку Textures (Текстуры). Просто скопируйте файл в нее, или перетащите его из проводника. Не беспокойтесь сейчас о настройках импорта.

Создайте в Unity новый игровой объект Sprite на сцене.

Что такое спрайт?

По сути, спрайт – это 2D-изображение, используемое в видео-игре. В данном случае это объект Unity для создания 2D-игр.

Добавляем текстуру спрайта

Unity может автоматически установить фон для вашего спрайта. Если ничего такого не произошло, или если вы хотите изменить текстуру, перейдите на вкладку инспектора и выберите background : (фон)


Вы должны нажать на маленький круглый значок справа от поля ввода, чтобы появилось Select Sprite (Выбрать спрайт) в Инспекторе

Мой спрайт не появляется в диалоговом окне! Убедитесь, что вы находитесь в вкдадке Assets диалогового окна "Select Sprite" (Выбрать спрайт). Если вы видите диалоговое окно пустым, - не пугайтечсь. Дело в том, что для некоторых установок Unity, даже со свежим новым 2D проектом изображения импортируются как "Текстура", а не "Спрайт". Чтобы это исправить, необходимо выбрать изображение на панели "Проект", и в "Инспекторе", изменить свойство "Текстура Type" имущество "Sprite":

Итак, мы создали простой спрайт отображающий облака на небе. Давайте внесем изменения в сцену. В панели Hierarchy (Иерархия) выберите New Sprite . Переименуйте его в Background1 или что-то такое, что легко запомнить. Переименуйте его в Background1 или что-то такое, что легко запомнить. Затем переместите объект в нужное место: Level -> 0 - Background . Измените координаты на (0, 0, 0) .


Создайте копию фона и поместите его в (20, 0, 0) . Это должно отлично подойти к первой части.

Tip : Вы можете создать копию объекта с помощью клавиш cmd + D в OS X или ctrl + D Windows .

Слои со спрайтами

Следующее утверждение очевидно, но обладает некими неудобствами: мы отображения 2D мир. Это означает, что все изображения на одной и той же глубине, то есть 0 . И вы графический движок не знает, что отображать в первую очередь. Слои спрайтов позволяют нам обозначить, что находится спереди, а что сзади.

В Unity мы можем изменить "Z" наших элементов, что позволит нам работать со слоями. Это то, что мы делали в этом руководстве перед обновлением до Unity 5, но нам понравилась идея идея использовать слои со спрайтами. У вашего компонента Sprite Renderer есть поле с именем Sorting Layer с дефолтным значением. Если щелкнуть на нем, то вы увидите:

Давайте добавим несколько слоев под наши нужды (используйте кнопку +):

Добавьте фоновый слой к вашему спрайту фона:

Настройка Order in Layer - это способ ограничить подслои. Спрайты с меньшим номером оказываются перед спрайтами с большими числами.

Слой Default нельзя удалить, так как это слой, используемый 3D-элементами. Вы можете иметь 3D-объекты в 2D игре, в частности, частицы рассматриваются как 3D-объекты Unity, так что они будут рендериться на этом слое.

Добавление элементов фона

Также известных как props . Эти элементы никак не влияют на геймплей, но позволяют усовершенствовать графику игры. Вот некоторые простые спрайты для летающих платформ:


Как видите, мы поместили две платформы в один файл. Это хороший способ научиться обрезать спрайты с помощью новых инструментов Unity .

Получение двух спрайтов из одного изображения

Выполняйте следующие действия:

  1. Импортируйте изображения в папку "Текстуры"
  2. Выберите спрайт Platform и перейдите к панели Инспектор
  3. Измените "Sprite Mode" на "Multiple"
  4. Нажмите на кнопку Sprite Editor (Редактор спрайта)

В новом окне (Sprite Editor) вы можете рисовать прямоугольники вокруг каждой платформы, чтобы разрезать текстуру на более мелкие части:


Кнопка Slice в левом верхнем углу позволит вам быстро и автоматически проделать эту утомительную работу:

Unity найдет объекты внутри изображения и будет нарежет их автоматически. Вы можете установить дефолтное значение для точки вращения или минимальный размер каждого фрагмента. Для простого изображения без артефактов, это необычайно эффективно. Тем не менее, если вы используете этот инструмент, будьте осторожны и проверьте результат, чтобы убедиться, что вы получили то, что хотели.

В этом уроке проделаем эту операцию вручную. Назовите платформы platform1 и platform2 . Теперь, под файлом изображения, вы должны увидеть два спрайта отдельно:


Добавим их в сцену. Для этого мы будем выполнять те же действия что и для фона: создадим новый спрайт и выберим platform1 . Потом повторим эти действия для platform2 . Поместите их в объект 1 - Middleground . Убедитесь, что их позиция по оси Z равна нулю.


Prefabs (Префабы)


Таким образом вы создадите Prefab , точно отвечающий оригинальному игровому объекту. Вы увидите, что игровой объект, который вы конвертировали в Prefab , представляет собой новый ряд кнопок прямо под его именем:


Заметка о кнопках "Prefab": При последующей модификации игрового объекта, вы можете использовать кнопку "Apply", чтобы применить эти изменения к Prefab , или кнопку "Revert", чтобы отменить все изменения игрового объекта в свойстваъ Prefab . Кнопка "Select" переместит выбранные свойства в ассет Prefab в окне проекта (они будут выделены).

Создание префабов с объектами-платформами упростит их повторное использование. Просто перетащите Prefab на сцену, чтобы добавить копию. Попробуйте добавить другую платформу таким же образом.

Теперь вы можете добавить больше платформ, меняющих свои координаты, размеры и плоскости (вы можете поместить их на заднем или переднем плане, просто установите координату Z для платформы на 0).

На данном этапе все это выглядит еще сыроватым, но в следующих двух главах мы добавим параллаксный скроллинг, и сцена оживет у нас на глазах.

Слои

Прежде чем двигаться дальше, мы модифицируем наши слои, чтобы избежать каких-либо проблем с порядком их отображения. Для этого просто измените позицию игровых объектов по оси Z во вкладке Hierarchy (Иерархия) следующим образом:

При переключении из 2D режима в 3D, в окне "Scene" (Сцена) вы будете четко видеть слои:


Кликнув на игровом объекте Main Camera , вы увидите, что флажок Projection установлен на Orthographic . Эта настройка позволяет камере визуализировать 2D игру без учета трехмерных свойств объектов. Имейте в виду, что даже если вы работаете с 2D объектами, Unity по-прежнему использует свой 3D движок для визуализации сцены. Рисунок выше это наглядно демонстрирует.

В следующем уроке:

Вы только что узнали, как создать простой статический фон и как отобразить его должным образом. Затем мы научили вас, как сделать простые спрайты. В следующей главе мы узнаем, как добавить игрока и его врагов.