Четверг, 21 Ноября 2024, 22:23

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Урок по созданию арканоида
AtlantiusДата: Понедельник, 04 Июня 2012, 13:20 | Сообщение # 1
Тропами Тлито
Сейчас нет на сайте
Конечно на этом форуме есть уроки по созданию арканоида, но все они либо не полные, либо не законченные. И вот я решил написать полный урок по созданию арканоида на Game Maker 8.0

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



Назовем их: s_Board, s_Wall, s_Ball, s_Block. Теперь когда спрайты загружены делаем объект для каждого спрайта соответственно. Сначала разберемся со стенами. Для их создания достаточно лишь нажать на кнопку Solid. Этим самым мы сделаем твердость объекта.



Со стенами разобрались. Теперь переходим к объекту o_Board, то есть к нашей доске. Создаем событие Create и пишем скрипт:

Code
window_set_cursor(cr_none)

Этим самым мы убираем курсор мыши, чтобы он нам не мешал. Тут же в событии Step:
Code
x=mouse_x

Затем делаем столкновение с объектом o_Wall и пишем:
Code
speed=0

То есть если доска врежется в стену, то она не пройдет сквозь нее. Доска готова.

Теперь разбремся с o_ball, то есть с шаром. В Create пишем:
Code
speed=10 //Скорость шара
direction=40 //Под каким углом стартует шар


Теперь делаем столкновения с o_board, o_block, o_wall. И везде пишем:
Code
action_bounce(true,true)


Теперь, при столкновении с выше перечисленными объектами наш шарик будет отскакивать от них. С этим разобрались. Теперь снова перейдем к столкновению с o_block и в этом же скрипте пишем:
Code
with other instance_destroy() //удаление блока при столкновении с шаром

В правой колонке кликаем на вкладку "Score" и ищем "Set Score" (в левом верхнем углу, три желтых круга)



В открывшемся окне ставим нужное вам количество очков и обязательно галочку на "Относительно". Иначе очки будут начисляться только за один блок. То есть если шарик врежется в один блок, то дадут указанное количество очков, но если он и дальше будет продолжать врезаться в блоки, то очки начисляться не будут.

Далее создаем новый объект без спрайта o_Support. И в Draw пишем:

Code
draw_set_font(Название вашего фона)
draw_text(70,3,"Score: "+string(score))


То есть теперь в координатах 70 и 3 будет выводиться надпись Score и набранное вами количество очков.

Теперь перейдем к переходу между уровнями. Что нам собственно нужно? Чтобы при полном уничтожении объектов o_block уровень сменялся на другой. Для этого в o_Support создаем событие Step и ищем справа вкладку control, а в ней Test Instance Count (). Перед нами откроется окошко. Там где object выбираем o_Block. Там где number ставим 1. И наконец в operation Smaller than. Жмем на кнопку ОК. И сразу после Test Instance Count ставим Next Room (). То есть после уничтожения всех объектов o_Block игра переходит на следующий уровень. Но вернемся снова к o_Ball. Создаем объект Outside Room (Вне границ комнаты) и пишем:

Code
show_message('Ты проиграл!')
x=xstart; y=ystart;


Вот собственно и все. Создаем комнату и раставляем все так, как нам нужно. Не забудьте поставить в комнату объект o_Support! Арканоид готов wink

Добавлено (04.06.2012, 13:20)
---------------------------------------------
К сожалению на данный момент не могу написать статью про бонусы, выпадающие из o_Block, но скоро добавлю.

  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг