Лабораторная работа №2


Добавление объектов, событий и действий. Скрипты.
Цель – Научиться добавлять объекты, события и действия в программе Game Maker 8.
Продолжительность лабораторной работы: 2 академических часа.
План урока:
- научиться добавлять объекты;
- научиться добавлять события;
- научиться добавлять действия.

Аппаратно-программное обеспечение:
- компьютер на базе процессора не ниже 1 ГигаГерц;
- операционная система Windows 95/98/2000/XP/Vista/Seven;
- программа Game Maker 8.

I. Откройте файл с прошлого занятия «Platform_0».
Добавим первый объект в наш проект. Для этого выберите «Добавить ресурс»> «Добавить объект». Перед Вами появится окно свойств, как на рисунке 7.
Рисунок 7 – «Окно свойств объекта».
Укажите имя объекта – «obj_block». Этот объект будет играть роль препятствий в нашей игре. Выберите спрайт для объекта, кликнув в строке «Спрайт» (Sprite). Появится выпадающий список, в нём выберите «spr_black».
Поставьте галочку на пункте «Твердый».
Сохраните объект, нажав кнопку «ОК».
II. Добавим объект игрока в нашу игру. Для этого выберите «Добавить ресурс»> «Добавить объект».
Укажите имя объекта – «obj_player».
III. Добавим события и действия для объекта игрока.
Создание
Добавьте событие «Создание». Для этого нажмите «Добавить событие»> «Создание».
Откройте вкладку «Control» в списке действий. Найдите там значок «Execute Code» . Зажмите на нем левую кнопку мышки и, не отпуская её, перетащите элемент в Действия (см. Рисунок 8).
Рисунок 8 – «Код в списке действий».
Дважды щелкните по элементу кода в списке действий, чтобы перейти в редактор кода (см. Рисунок 9).
Рисунок 9 – «Редактор кода».
В редакторе кода вставьте строку:
gravity_direction=270 //направление гравитации
180
270
Примечание: градусы направления в Game Maker указываются так:
Соответственно, мы указали направление гравитации вниз.

Нажмите галочку  для сохранения кода.
Столкновение
Создайте событие столкновения с блоком. Для этого нажмите «Добавить событие»> «Столкновение». В выпадающем меню выберите «obj_block».
Добавьте в Действия значок кода.
Перейдите в Редактор кода и добавьте туда строки:
{
move_contact_solid(270,12); //двигаться до столкновения с твердым объектом
                                                      //в направлении 270 и максимальной дистанцией 12
vspeed = 0; //вертикальную скорость установить в 0
}
Сохраните код.
Шаг
Добавьте событие шага. Для этого нажмите «Добавить событие»> «Шаг». В выпадающем меню выберите «Шаг».
Добавьте в Действия значок кода.
Перейдите в Редактор кода и добавьте туда строки:
{
//движение на клавишу Left
if keyboard_check(vk_left)
    if !position_meeting(x-4,y,obj_block) //если нет столкновения с блоком слева
        x -= 4;                                       //сдвинуть игрока влево на 4
       
//движение на клавишу Right
if keyboard_check(vk_right)
    if !position_meeting(x+4,y,obj_block)//если нет столкновения с блоком справа
        x += 4;                                              //сдвинуть игрока вправо на 4

//Прыжок       
if keyboard_check_pressed(vk_up)             //если была нажата клавиша вверх         
    if !position_meeting(x,y-12,obj_block)             //если нет препятствий сверху
        if !place_free(x,y+1)                  //если под игроком есть твердый объект
            {
                y -= 4;                   //поднять игрока на 4 вверх
                vspeed -= 12;                    //вертикальная скорость -12, т.е. снизу-вверх
            }

//гравитация                   
if place_free(x,y+1)                      //если под игроком нет твердых объектов
    gravity=0.5                                                     //то гравитация = 0.5 за шаг
else
    gravity=0;                                                       //иначе гравитация = 0       

//ограничения на вертикальную скорость        
if vspeed>12                       
    vspeed = 12;         
}
Сохраните код и сохраните изменения в объекте.
IV. Расположим наши объекты в комнате. Откройте Редактор комнаты «room0», кликнув дважды на названии комнаты в списке ресурсов.
В открывшемся редакторе выберите объект «obj_block» для добавления на вкладке «Объекты» (Objects).
Расставьте блоки на уровне так, как показано на рисунке 10.
Примечание: для удобства включите сетку в панели элементов Редактора комнат. Удерживайте клавишу <Shift> для размещения/удаления нескольких объектов. Удерживайте клавишу <Ctrl> для перемещения объекта. Нажмите правую кнопку мышки для удаления.
Выберите объект игрока и поставьте его где-нибудь на уровне.
Сохраните проект под именем «Platform_1».
Запустите проект через «Выполнить»> «Обычный запуск» или нажав <F5>.

Рисунок 10 – «Уровень игры».
Задание:
1. Разместите больше одного объекта игрока. Что произойдёт и почему?
2. Увеличьте ширину уровня до 1000.
3. Добавьте блоки других цветов. Код не размножайте – установите родителя «obj_block» в новых блоках.
4. Смените управление игроком из Шага на события нажатия клавиш.

Вопросы для самопроверки:
1. Зачем нужно ограничивать вертикальную скорость у игрока?
2. Что будет, если установить направление гравитации 0?


Комментарии