Rambler's Top100
  Навигация :
  Оглавление
  Новости (Архив)
  Об этом проекте
  О программе GM
  Скачать
  Документация
  Русский Help
  Обучение
 
Примеры
  Ресурсы
  Ссылки
  Прямая связь
  Статьи:
  Platform
  Platform v4.2
  Maze    
  Статистика :



Chast (Для начинающих) - Часть №1


Copyright © 2003 ST ST

1. Основы.

Game Maker - вещь, с помощью этой проги можно создать неплохую аркаду. У этого движка графику можно задать самому, т.е. как спрайты нарисуешь, такая и графика будет. У этого движка есть отличительные способности, о которых нельзя не упомянуть:
     1) В общем, там для создания игрушки не нужно писать ни одной строчки (только если игра сложная, то там все-таки нужно, но для простых игр не надо).
     2) Как уже говорил, какой спрайт нарисуешь - такова будет и графика (ну вообще графика зависит не только от спрайта, но и от разрешения).
     3) Полностью интуитивный интерфейс.
Мы будем создавать аркадную игру и на ее примере вы сможете создавать и другие интересные игры.

2. Вот основные определения:

    1. Sprites - спайты - изображения, которыми мы будем оперировать.
    2. Sounds - звуки, которые можно назначать.
    3. Backgrounds - изображения, используемые как фон.
    4. Paths - путь, линия вдоль которой движется объект.
    5. Scripts - скрипты или сценарии работы программы.
    6. Objects - объекты.
    7. Rooms - комнаты, где будут происходить действия.

№ 1
Назначаем спрайты:
Нажмем кнопку Add Sprite и назначим спрайт Fighter1 (находится в папке Space) назовем его "корабль1". Назначим Fighter2 нажмем Edit Sprite далее Transform \ Rotate 180 (Rotate: можно назначить направление спрайта, а щелкнув еще раз на изображение мы можем его изменить) назовем корабль2. Ну и dot (папка Pacman) назовем его выстрел и explode2 (Varius) назовем взрыв.

№ 2
Назначаем объект Add Object - спрайт "корабль1" и называем его корабль1.
Назначаем объект Add Object - спрайт "корабль2" и называем его корабль2.
Назначаем объект Add Object - спрайт "Выстрел" и называем его выстрел.
Назначаем объект Add Object - спрайт "взрыв" и называем его взрыв.

№ 3
Аналогично назначаем звуки, их нам надо 2 штуки. 1 для взрыва, 2 для выстрела.

№ 4
Далее назначаем фон он может быть любым.

№ 5
Теперь переходим к объекту "корабль1" далее делаем по пунктам:
Наша задача заключается в том, чтобы объект двигался при нажатии кнопки и стоял при отжатии.

     1) Add Event \ Key press (и назначаем кнопки лево, право, пробел); (т.е. при нажатии выполняются действия).

     2) В лево переводим действие Start moving in a direction и нажимаем на стрелку влево (ниже находится скорость по умолчанию - 8) .

     3) Тоже с право.

     4) Add Event \Key release (лево, право); (т.е. при отжатии клавиши) нажимаем Start moving in a direction и ставим стрелку посередине ( т.е. при отжатии останавливается).

     5) Переходим к выстрелу Add Event \ Create.

     6) Далее в вкладке и ставим звук (т.е. Misk \ Play a sound ) выстрела.

     7) Start moving in a direction и нажимаем направление движения пули т.е. вверх и со скоростью 16 и галочку Relative.

     8) Вернемся к "корабль1" и при нажатие пробела (т.е. press пробел) ставим object \ Create:(лампочка) ставим объект выстрел и галочку Relative. (т.е. при нажатии пробела выстрел).

     9) Далее создаем комнату в вкладке Backgrounds ставим свое изображение.

     10) Там же (т.е. в этой комнате в вкладке Object) кликаем объект "корабль1" и ставим его снизу.

     11) Нажимаем F5 и балдеем он летает и стреляет с характерным звуком.


рис.1 Вот что должно получится!

     12) Теперь нужно сделать противников. Это будет "корабль2" этот противник будет только летать строго вперед и ваша задача его поразить или увернуться. Действовать будем так сначала он или они появляться сверху, при выходе за пределы комнаты появится сверху (0 по вертикали и любой по горизонтали) если встречается с пулей -то он возникает в новой позиции как уже писал и нужно его заменить на объект "взрыв" который при окончании анимации удалит этот объект. А и не забыть удалить выстрел и зачислить на счет одно очко. И при столкновение с нашим героем вывести счет и начать игру заново. Фу: кажется все. Задача не особо простая, но реальная, главное - логика! Если все логично - то игра будет работать как надо.

     13) Теперь переходим к "корабль2" добавляем создание объекта (т.е. Add Event \ Create \ Set the vertical speed и ставим значение 4 (т.е. вниз со скоростью 4 если -4 то будет лететь в другую сторону).

     14) Далее Add Event \ collision и выбираем объект "корабль2" (т.е. событие столкновения "корабль1" c "корабль2" если помните то при этом мы перезапускаем и выводим счет. Т.е. в вкладке Misc \ Show the highscore table и Restart the game.

     15) Add Event\ collision "выстрел" Set the score в той-же вкладке и набираем +1. Там-же Play a sound и звук взрыва. В вкладке Move \ Jumb to a given position и пишем в x (random(1+640)) .

     16) Add Event \ other \ Outside room (т.е. при покидании границ комнаты) следующее действие вкладке Move \ Jumb to a given position и пишем в x (random(1+640)) .

     17) Теперь осталось сделать взрыв. Он выглядит так при столкновении объекта с выстрелом мы должны заменить выстрел на взрыв и когда анимация кончится просто его удалить. Сделаем это так в выстреле Add Event \ collision и выбираем объект "корабль2" и далее в вкладке Object \ Change the instanse и выбираем объект "взрыв" (мы меняем "выстрел" на "взрыв"). И удаляем deatroy the instanse.

     18) Осталось лишь расположить объекты. И получится примерно так.

Вот принципе и все!!! Далее я лишь объясню как ее улучшить.

3.

Все! Игры кончились! Приступаем, теперь мы будем улучшать. Первая цель - строка состояния.
     1) Add Script и набираем текст:

{
brush_color = c_black;
pen_color = c_black;
draw_rectangle(argument0,argument1,argument0 + 200,argument1 + 25);
brush_color = make_color(200 - global.health*2,global.health*2,0);
draw_rectangle(argument0,argument1,argument0 + global.health*2, argument1 + 25);
font_color = c_white;
font_size = 12;
font_name = 'Courier';
font_style = fs_bold;
font_align = fa_center;
draw_text(argument0 + 100,argument1 + 5,'Здоровье:' + string(global.health) + '%');
}

Набрали? Ok.
     2) Создаем объект без спрайта или с ним не важно.
Теперь Add Event \ Create в вкладке Code \ Execute a piece of code пишем global.health = 100; Далее Add Event \ Draw \ Code \ Execute script и назначаем наш скрипт.
     3) Переходим к нашему главному герою: Add Event \ collision "корабль2" \ Code \ Execute a piece of code пишем: if global.health = 0 room_restart() global.health-=25; (25 значит при столкновение с объектом "корабль2" -25%). Во вкладке Object \ Create an instanse of an object ставим "взрыв" и галочку relative.(теперь при столкновение с противником появлялся взрыв и -25% жизни, а если кончилось здоровье то игра перезапускается).
     4) Должно получиться что-то вроде этого:

На вашем месте я бы удалил из спрайта "взрыв" все кадры до 7. Так красивей ;)!
Красота, но это еще не все!
     5) Наши противники не стреляют! Исправим. Берем противника, Add Event \ Step и в question \ if a dice lands on one значение 40. Теперь делаем новый объект "выстрел2" там ставим все тоже что и в выстреле только направление в другую сторону. Вернемся к противнику в Step \ object \ Create an instanse of an object там выстрел2.
     6) Жмем F5! Все должно пройти так он летит и стреляет по тебе но здоровье не отнимается! Будем исправлять ситуацию. При столкновении с выстрелом2 пишем все тоже что и при столкновении с "корабль2" только -5% , хотя кому как нравится.
     7) Надо решить проблему управления! Но это для кого как можно мышью, а можно клавиатурой. Я покажу как мышью. Ну для начала удалим предыдущее управление. Теперь Add Event \ Step \ jumb to diven position пишем в x mouse_x , а в y -460. Все теперь в опциях игры отставляем галочку в показе курсора. Там-же можно поставить фоновую картинку и картинку при загрузке, и ярлык для игры. Нажимаем file \ create stand-alone и конвертируем игру. Теперь загружаем!

Конечно можно совершенствовать ее просто бесконечно, в следующей части будут основы как создать простенькое RPG, а пока до новых встреч!

Если чего пишите мне Ewgeni790@rambler.ru

Внимание!!! Данный урок публикуeтся в том виде, в каком он был прислан в наш адрес (без редактирования и рецензирования). Со всеми вопросами и замечаниями по теме изложенной в руководстве просим обращаться только к автору.

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

Скачать демонстрационный пример.



Если у вас появится желание предложить на всеобщее обозрение свои уроки или просто интересную информацию по созданию игр при помощи GameMaker, то милости просим - присылайте свои работы по адресу gamemaker [at] e1.ru, с указанием темы 'Уроки по GM' или непосредственным указанием на предмет урока.

Присланные вами материалы мы с радостью разместим на страницах нашего сайта, с обязательным указанием автора!


[ Вернуться в основной раздел ]

© 2001-2003 Simple Life & World Нужен ремонт компьютеров Вднх www.compremont-vdnh.ru;скидки на ролики