пятница, 9 ноября 2012 г.

Создание арканоида в Game Maker.



Часть 1. Основные спрайты
Итак, для начала нужно скачать спрайты и фоны, которые мы будем использовать -ссылка.

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



Вот какой должна получиться игра!

Для начала, заходим в Game Maker и создаем новую игру. После этого создадим новый спрайт - платформу, от которой будет отскакивать мячик. Он находиться в архиве в папке "спрайты" - "платформы" - "платформа обычная". Затем нажимаем Edit sprite и выбираем Тransform. Жмем Strech и растягиваем платформу до размеров 81 на 18 :



Теперь создадим спрайт мячика. Он находиться в папке "Спрайты". Назовем его ball :



Таким же же способом создаем спрайт wall - спрайт стены(в той же папке)


Итак, только что мы создали основные спрайты арканоида.

Приступим к объектам! Создаем новый объект под названием под названием ball, и дадим ему спрайт ball. Щелкаем add event и добавляем событие Create. Пишем для него действие Move Free (во вкладке Move). В direction пишем 126, а в speed 8.


Часть 2. Движение мяча и управление платформой.
Создадим объект platform_norm со спрайтом платформы. Событий пока что не добавляйте, закройте объект и добавьте еще один - объект стены, со спрайтом стены. Назовите wall.

Самое главное в арканоиде - отскакивание мяча от платформы и стены. Чтобы сделать это, откройте объект нашего мячика и создайте новое событие Colission with platform_norm(столкновение с платформой). Добавим действие Execute Code (вкладка control, отдел Code). В появившееся окно напишите код:

action_bounce(true,true);

Добавьте новое событие Colission with wall. Добавляем такое же действие с таким же кодом.

Теперь создайте комнату(room). Размеры комнаты по умолчанию - 640х480, менять не надо

Вверху комнаты вы увидите надписи - Snap X и Snap Y. Это размеры сетки в комнате. Поставьте 16 и 16.

Кликните немного выше надписи Object to add with left mouse(Слева внизу) и выберите объект wall. Теперь попробуйте кликнуть на комнату(комната - площадь, разделенная сеткой) и увидите, что наша стена появится там, где вы кликните. Попробуйте расставить стены по краям комнаты. После этого выберите объект платформы и поставьте посередине внизу на предпоследней строке. Именно на предпоследней. А мячик поставьте немного выше платформы. Должно получиться так:

Закрываем комнату и открываем объект платформы. Добавляем событие End Step и добавляем в него действие Jump to Start(вкладка Move, отдел Jump). В появившееся окно пишем:

x: mouse_x
y: 448

Объясню что мы только что сделали. Мы сделали событие, в котором наша платформа может передвигаться только по вертикали 448 (предпоследняя строка), а по горизонтали куда мышка направит.

Запустим игру (клавиша F5) и если вы все сделали правильно, то мяч в комнате будет передвигаться с стороны в сторону, отбиваясь от платформы и стен. А платформа передвигаться вслед за вашей мышкой.


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

Открываем нашу игру и создаем новый спрайт - спрайт красного блока. Он находиться в архиве в папке "Спрайты"-"блоки" под названием "красный1". Назовем его red_block1

Добавим иной спрайт. Он находиться в той же папке под названием "красный2"(потресканный "красный1"). Назовем его соответственно red_block2.

Приступаем к объектам: создаем объект red_block1 - спрайт соответствующий. Так же создаем объект red_block2 - спрайт red_block2.

Теперь, когда объекты созданы, начинаем их наполнять. В red_block1 добавляем событие Colission with ball, и пишем в него действие Change Instance(вкладка main1, отдел objects). В появившееся окно пишем:

change into: выбираем red_block2
perform events:not

Итак, только что мы сделали так, чтобы при столкновении с мячиком объект red_block1 менялся на red_block2, то-есть "трескался".

Переходим к red_block2, создаем в нем событие Colission with ball, и добавляем в него действие Destroy Intance( в том же месте, картинка корзины). Этим действие мы сделали исчезновение red_block2 и удаление его с игры.

Открываем объект ball и создаем 2 события - Colission with red_block1 и Colission with red_block2. В обоих событиях пишем действие Execute a Code и добавляем уже знакомый код:

action_bounce(true,true);

Примечание: так как вот такие коды мы будем использовать нередко, вместо "пишем действие Execute Code" я буду писать "добавляем код".

Ну что же, остается только добавить объект red_block1 в комнату. Например вот так:

Если вы все сделали правильно, то при запуске игры вы сможете уничтожать блоки, и не за раз, а за два, так как red_block1 при столкновении с мячиком превращаеться в red_block2.
Часть 4. Очки и жизни.
В этой части мы поговорим о создании очков и жизней.

Для того чтобы создать очки, нужны объекты, при содействии с которыми очки добавляются и отнимаются. Для этого зайдите в объект red_block2 и добавьте в ранее созданное событие Colission with ball еще одно действие - Set Score(вкладка Score, отдел Score) и в появившееся окно запишем:

New score:20

И поставьте галочку возле пункта Relative.

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

Откройте объект нашей платформы и создайте событие Create. В это событие добавьте код:

score=0
lives=3

Таким образом, как только платформа появится, очки будут равны нулю, а жизней будет три. Затем в это же событие добавьте действие Score Caption(вкладка Score, отдел Health).
В появившемся окне запишем:
Show score: show
Score caption: Очки:
Show lives: show
Lives caption: Жизни:

Ну а теперь поподробней о жизнях. Создадим спрайт over, щелкаем Edit sprite, затем File и потом New и создаем новый спрайт размером 640х16. Покрасьте его в какой то цвет, например, в желтый.

Создаем объект over, снимаем галочку с Visible и добaвляем событие Colission with ball, добавляем в него действие Set Lives( вкладка Score отдел Lives ) и напишите там:

New lives: -1
Relative-Галочка

Открываем объект ball и добавляем событие Colission with over и добавляем в это событие действие Bounce(вкладка Move, отдел Jump). Пишем туда:
Precise: presicely
Against: all objects

Остается лишь расставить объект over внизу нашей комнаты:

Если вы все сделали правильно, то при запуске игры при столкновении мячика с невидимым over отнимается 1 жизнь ( жизни и очки показаны вверху экрана игры), и после уничтожения треснувшего красного блока будет добавляться 20 очков.
Часть 5. Звуки и фоны.
Продолжаем работу над арканоидом.

В этой части мы постараемся добавить интересности нашему арканоиду с помощью звуком и бекграундов.

Сначала займемся бекграундами. Бекграунд - это фон игры. Добавляем новый бекграунд. Он находится в архиве "фоны" выберите любой бекграунд, который вам понравится, можете добавить свой, как хотите. Растяните его до размера 640х480. Назовем его background0.

Окрываем комнату и выбираем вкладку backgrounds. Под Foreground Image есть надпись no background. Выбираем background0 и ставим галочку на Visible then room starts(видимый вначале). Вот что должно получится:

Ну теперь осталось заняться звуками. Добавляем новый звук (Sound) и добавляем новый звук в архиве под названием гаваи 1. Назовем его music.

Открываем объект платформы и в событие Create пишем действие Play Sound( вкладка Main1 отдел Sounds) и пишем туда:

Sound: music
Loop: true

Если вы хотите чтобы звук прозвучал только один раз, поставьте Loop: false.

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

Для начала добавим новый спрайт - блок, при уничтожении которого будет вылетать бонус. Он находится в архиве "Спрайты" - "Бонусы" под названием "бонус блок". Назовем его bonus_block.

Добавляем еще один спрайт. Он находится в той же папке под названием "жизнь". Это не обычный спрайт. Это анимация. Точнее, несколько картинок, которые вместе составляют анимацию. Назовем life.

Создаем объекты bonus_life (спрайт bonus_block) и life (спрайт life). В объект bonus_life добавляем событие Colission with ball и пишем туда действие Destroy Instance(корзина).
Добавляем новое событие Destroy. Пишем действие Create Moving (Main1/objects). В него записываем:

object: life
x: 0
y: 0
speed: 3
direction: 270
Галочка на Relative обязательна.
Все это значит, что при уничтожении бонус блока объект life устремится вниз(direction 270) со скоростью 3.
Открываем объект life и добавляем событие Colission with platform_norm. Пишем действие Destroy Instance. И затем еще одно - Set lives(Score/lives). Записываем туда:

New lives: 1
Relative - галочка.

Ну а теперь добавляем новый спрайт. Находится в той же папке под названием "смерть". Назовем skull.
Далее мы делаем почти то же самое, что и с бонусом жизни. Дублируем объект bonus_life. Называем его bonus_skull. А в действии Create moving пишем:

object: skull

Остальное не меняем.
Создаем объект skull с соответствующим спрайтом. Добавляем событие Colission with ball и пишем в него действие Set lives:

New lives: -1
Relative - галочка.

В объект ball добавьте события Colission with bonus_life и Colission with bonus_skull. В оба события пишем код:

action_bounce(true,true);

Расставьте бонусы по комнате:

Запустите игру. Если вы все сделали правильно, то при столкновении с мячиком бонус блок уничтожится и из него будет вылетать бонус.

Создаём меню



Доброго времени суток!
Этот урок написан специально для новичков, тех, кто еще создаёт свою первую игру.
Начнем с того, что меню в игре много значит. Пользователь, зашедший в меню, может легко получить доступ к настройкам, сохранениям и самой игре, при этом не читая справку и не барабаня по кнопкам методом научного тыка.

 
Итак, приступим к делу! Конечно же начнем мы со спрайтов. В папке с Game Maker найдите такой спрайт:


(он находится тут: sprites->buttons->button_play). Назовите этот спрайт s_play и нажмите на кнопку "По центру". Нажмите ок. Первый спрайт готов. Мы его видим в меню слева.

Теперь нажмите на этот спрайт правой кнопкой мыши. Появится окошко с функциями. Кликните по функции "дублировать". Появится точно такой же спрайт. Только называться он будет по другому - sprite1. Итак, нажмите "редактировать". Затем нажмите на карандашик в правом верхнем углу. Теперь можем спокойно редактировать спрайт. Наша задача, залить белые участки красным цветом. Главное случайно не закрасить буквы. Иначе вы сами знаете, что выйдет.

Залили все белые участки красным цветом? Хорошо! Теперь сохраняем спрайт, нажав на зелёную галочку. Далее ещё раз на галочку. Выдадим спрайту имя - s_play2. Спросите зачем заливать красным?Читаем дальше.

Теперь загрузите такой спрайт:


Он похож на первый спрайт, правда? Но всё же текст там другой. Ладно, продолжим. Назовите этот спрайт - s_quit. Теперь делаем точно такую же операцию, что и со спрайтом s_play. То-есть дублируем его и заливаем красным цветом. Получившийся спрайт называем s_quit2.

Отлично! Мы сделали два спрайта кнопок для меню - играть и выход. Какую кнопку нужно добавить ещё? Конечно информацию об игре(помощь по игре).

И снова загружаем спрайт:


Даём ему имя s_info. Затем жмём ок. И опять же дублируем его и заливаем новый спрайт красным цветом. Короче, проводим такую-же операцию, как и со спрайтами s_play и s_quit. Ах да, его имя будет s_info2. Можете радоваться! Вы только что сделали набор нужных спрайтов для меню.
Итак, начинается самое сложное - объекты. Я надеюсь, вы не подумали что мы всё закончили и что осталось разместить объекты на уровне и всё, можно играть? Я надесь, что нет. Хорошо, хватит болтать, приступим к делу.

Создаём объект(если вы не умеете это делать,пишите в комментариях, отвечу). Присваиваем объекту спрайт s_play. Далее создаём событие кликнув по кнопке "добавить событие". Откроется окошко. Кликаем на кнопку "мышь"-->"наведение курсором мыши". Теперь посмотрите на колонку кнопок справа. Нашли?Там такие надписи: move, main1, main2, control и т.д. Нажмите на main1. Вы увидите что картинки изменились. В этих "картинках" найдите рисунок красного пакмэна(Change Sprite). Нажмите на него правой кнопкой мыши. Должно появиться окошко.Нажимаем туда, где стоит курсор на картинке.


Появится список наших спрайтов над которыми мы недавно работали. Выберите в этом списке красную картинку с именем s_play2. Теперь нажмите ок.

Дальше кликаем на "добавить событие". Выбираем - "мышь"-->"покидание курсором мыши". Опять жмём правой кнопкой на пакмэна. В появившемся окне открываем список спрайтов. Выбираем белый спрайт с надписью s_play. Нажмём ок. Снова жмём ок. И очередной раз создаём событие - "мышь"-->"левая нажата". 

Нажимаем правой кнопкой мыши на Next Room  . Жмем ок. Ура! Мы создали кнопку "играть", которая при нажатии перенесет вас в следующую комнату. Давайте дадим объекту имя o_play.
Теперь надо сделать кнопку "выход".Создаём объект, и сразу, что бы не забыть даём ему имя - o_quit. И сразу понятно что надо присвоить ему спрайт s_quit. Итак, нам надо сделать операции аналогичные тем, что мы проводили с объектом o_play.

 Сразу создайте столбец таких же событий что и с предедущим объектом - o_play. Но только в событии левая нажата добавляем немного другое действие - Game End(найти его можно во вкладке Control). Это действие будет выключать игру при нажатии на кнопку. Переходим к "наведение курсором мыши". Добавляем действие с красным пакмэном. Как и в o_play. Ой! Я забыл рассказать что оно делает. Оно изменяет спрайт. То есть при наведении курсором мыши спрайт белой кнопки превращается в спрайт красной кнопки, как во многих играх. 

Ладно. Добавляем действие с красным пакмэном. Открываем столбец с перечисленными спрайтами в появившемся окне и в этом столбце нажимаем на спрайт с названием s_quit2. Жмем ок. Давайте обрабатывать событие "покидание курсором мыши". Опять выбираем действие с красным пакмэном. (Ох, я устал от пакмэна уже... ) Появляется окно. В столбце выбираем спрайт с именем s_quit. Жмем ок. Еще раз ок.

Два объекта готовы!!! Наверное, вам не терпится посмотреть объекты в действии. Но нет игровой информации! Надо сделать.

Снова создаём объект, называем его o_info, присваеваем спрайт s_info и создаём столбец действий, как у объекта o_play и o_quit. В событии "наведение курсором мыши" очередной раз выбираем красного пакмэна, в появившемся окне открываем список спрайтов и выбираем спрайт s_info2. В "покидание курсором мыши" делаем то же самое только выбирайте не s_info2, а s_info. В событии "левая нажата" добавляем действие Show Info (вкладка main2). Теперь жмём ок.

Находим в левом тач-баре окна Game Maker пункт game information. Кликаем по нему дважды. И в окно, которое появилось на экране вписываем всю игровую информацию и помощь. После того как вы это написали, нажмите на галочку, чтобы сохранить текст. Создаём комнату(уровень) .И размещаем там наши объекты(кнопочки).

Всё! Урок окончен! (Все вопросы писать в комментариях).

Upgrade hit the ball



И так для начала откроем окно "Создать спрайт" 

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

Потом создаем объект с этим спрайтом и называем его ball. Нажимаем кнопку "Create event"--->"Create". Из вкладки "move" добавляем "Move fixed" (красные стрелки в восьми направлениях). Далее делаем все так как показано на рисунке. 


Теперь тем же способом что и мяч загрузим или нарисуем спрайт стены. Создадим объект с этим спрайтом. Закрываем объект и снова заходим в объект "ball". Создаем событие столкновения со стеной. В него добавляем действие Move Fixed, но теперь выбираем только центр. Проверяем то что получилось по картинке: 

 

Не удивляйтесь что здесь не так как на всех картинках по этому уроку. Отскакивать мячик не будет. В этом Событии делаем еще одно действие - Create Random(вкладка main1). Оно будет создавать еще четыре мячика. Смотрим рисунок. 


 Только для того чтоб комп мог играть в эту игру он должен быть мощным))) Я серьезно. Ладно продолжим. Теперь на нужно сделать так, чтобы при нажатии левой кнопки мыши мячик исчезал. Для этого создаем событие Left Button и добавим в него действие Destroy Instance(вкладка main1). Это событие будет уничтожать объект. Смотрим картинку.


 Теперь создадим объект "controller". Добавим событие Step, а из вкладки "control" перетащим иконку с запиской (квадрат серого цвета и иконка записки в нем).
Там пишем: 

if instance_number(ball)=0 {room_goto_next()} 

Здесь, замещать очки будут множество уровней и сложная игра.
Теперь создадим фон (иконка картины), далее рисуем или загружаем его (так же как и спрайт).
Создаем несколько комнат размещаем ВСЕ объекты и фоны (можно создать и меню с историей но это не по моей части) и наслаждаемся первой игрой. 

Неплохо получилось, правда?

Как сделать хорошую игру



Как-то раз я наткнулся на замечательные статьи о том, как сделать игру, чтобы “покорить игрока”. Мне она очень понравилась, и я решил её слегка дополнить.
Небольшой урок о том, как сделать игру, в которую будут ИГРАТЬ. (Урок, кстати, пригодиться как и новичкам, так и профи.)

Реальная проблема многих игроделов – это не отсутствие фантазии. Бывает так, что и игра вроде бы ничего, а в неё не гуляют. В чём же дело? Да в исполнении! Игрок должен не бороться с дикими глюками игры, не смотреть на отсталую графику – а ИГРАТЬ! Запомните главное правило игродела: ИГРА ДОЛЖНА ПРИНОСИТЬ УДОВОЛЬСТВИЕ!
Вот несколько советов, как сделать вашу игру привлекательной!

1. Сделайте вашу игру оригинальной, с хорошей задумкой. Никому не интересно гулять в какой ни будь плагиат. Самое главное, чтобы у игры была ИЗЮМИНКА.

2. Некоторые, кстати, любят и хардкор (это сложные игры, если кто не в курсе). Только хардкор – это не значит, что игрок должен ломать клавиатуру и грызть ногти из-за того, что игра выша СЛИШКОМ сложной. Здесь главное не переборщить и постоянно подкидывать игроку что-то новенькое. Если уж хардкор – то, извольте, разнообразный.

3. Способ, противоположный хардкору – лёгкая игра. Вся соль в том, что при любых обстоятельствах – умеет игрок играть или нет – он будет чувствовать себя БОГОМ. Здесь тоже главное - знать меру.

4. Ещё один беспроигрышный вариант – это сделать игру-соревнование. В эту игру должны гулять много человек – чем больше, тем лучше. Игрок будет стремиться превзойти своего соперника, а соперник – оставаться на высоте. (Такую схему, кстати, используют в фэйтингах и онлайн играх.) Только смотрите! Игрокам не должно надоесть соперничать друг с другом!

5. Ну и последнее – на мой взгляд САМОЕ ВАЖНОЕ: КАЖДАЯ ИГРА должна быть хорошо оптимизирована, хорошо прорисована и с хорошим сюжетом; должна быть также полна приятными мелочами: отсутствием грамматических ошибок, обилием подсказок, приятной музыкой.

Заметьте, что я не требую от вас чего-тор сверхестественного – ни атмосферы, ни головокружительной графики… Я прсто говорю, в какие игры люди гуляют,а какие яро ненавидят. А следовать моим советам или действовать по своему –это уж ваша воля.

Как сделать RPG игру. Часть 1. Заготовка.



Сегодня мы с вами сделаем RPG.

И так... начнем! И я хотел бы предупредить что ВСЕ спрайты кроме заклинаний должны быть размером 32Х32. Для начала надо-бы создать спрайт игрока! Назовем его player. Кликаем на маленького красного пакмана вверху экрана. Нажимаем "edit sprite" ("редактировать" в русской версии) и рисуем игрока. Далее нарисуем еще одного похожего персонажа и назовем его NPC 1. Дублируем спрайт и называем NPC 3. С NPC закончили. Потом создаем спрайт "zaklinanie1", размером 13Х9 и нарисуем спрайт типа фаерболла. Продублируем этот спрайт дважды, называя каждый спрайт "zaklinanie (цифра)" Вместо "цифра" впишем 2 и 3. Будем им менять поочередно цвет. Когда закончили со спрайтами фаерболлов, создадим спрайт "enemy". Нарисуем врага и продублировав создадим несколько его видов. Опять же перерисовывая врагов и меняя им цвет. Когда закончили создадим объекты с теми-же названиями что и у спрайтов. Объектов должно быть столько-же сколько спрайтов. 1 врагу спрайт 1 врага, игроку - спрайт игрока и т.д.

Разработка TDS шутера (Часть 2)



В этом уроке мы будем продолжать разрабатывать нашу TDS игру в стиле достаточно известной игры Counter-Strike 2D. Если в прошлой части мы разрабатывали «основы основ», то теперь мы перейдем к более важным вещам, например к разработке достаточно сильных противников, а иначе говоря – ботов.

Health бар
Итак, для начала нам нужно подготовить второстепенные в этом уроке объекты и полностью оптимизировать их. Конкретно это касается пуль производимых уже ботами и небольшой изюминки – Health бара для игрока. Начнем, пожалуй, с health бара. Создайте объектhealth_bar и введите в событие Step скрипт:

x:=player.x-20
y:=player.y-20

Теперь в событие Draw скиньте блок действия Draw Health Bar() из вкладки score. В появившемся окне установите следующие обязательные значения:

x1 = x
y1 = y
x2 = x+50
y2 = y-5

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

Пули от enemy
Пули, выпускаемые ботом, будут иметь похожие свойства с пулями игрока. Поэтому щелкаем правой кнопкой мыши по объекту obj_bullet и нажимаем Дублировать(duplicate). Новый объект назовите так: obj_enemy_bullet. При желании вы можете немного доработать эти боеприпасы, например, установив функцию уничтожения при соприкосновении с игроком или стеной.


Доработка игрока
Когда появляются враги, появляется и возможность проиграть им. Чтобы это было не так легко давайте сделаем систему жизней для игрока (Завершение Health Бара). Для этого мы откроем объект player и для него добавим событие Столкновение с obj_enemy_bullet. В этом событии мы уменьшим жизни игрока следующим скриптом:

health-=1
 
В событие Create введем скрипт на 100 hp:


health=100
   
Чтобы игрок не был бессмертным, как какой-нибудь Кощей, нужно добавить действия для проигрыша. Для этого в событие Step, в самый конец перенесите действие TestExpression() с следующим условием:

health<=0

Следующим после данного действия к данному событию перенесите Restart Game().

Благодаря таким манипуляциям игрок сможет умереть, а точней он просто перезагрузит игру, если его пристрелят. У вас может возникнуть вопрос: «А почему нельзя просто удалить игрока, когда он умрет?». Да, конечно игрока можно удалить, ведь пока-что ботов нет. Но далее мы создадим противников и искусственный интеллект соответственно. Вся проблема в том, что планируемый «интеллект» будет использовать координаты игрока, а если игрок удалиться, то произойдет ошибка, ведь координаты исчезнут тоже.

Переходим к ботам
Ну и, в конце концов, мы дошли до того, к чему стремились изначально в этой статье, а именно к созданию ботов.
Итак, создайте объект enemy и в событие Step перенесите действие Set Variable() со значением:
Variable=image_angle и value=direction.

Перенесите еще одно такое же действие, но уже с другими параметрами:
Variable=shot_e и value= irandom(100)

Теперь перенесем еще и Test Expression() с условием:
(distance_to_object(player)<500) and  (distance_to_object(player)>100)

А ниже Test Expression воткнем действие Step Avoiding() со значениями:
x= player.x;
y= player.y;
speed=3

Все это ограничим снизу блоком ELSE, который очень напоминает Test Expression, только на нем написано ELSE 

Ниже вставим знакомый Set Variable со значениями:
Variable=direction и value=point_direction(x,y,player.x,player.y)

Ну а еще ниже скинем последнее условное действие Test Expression(если кто не запомнил то  вот оно: ):
(shot_e<5) and (distance_to_object(player)<350)

Ну и последний блок на сегодня! Переносим действие Create Moving со значениями:
Object=obj_enemy_bullet
X=x
Y=y
Speed=6
Direction=direction

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