gmexe

Блог про любимый комп и все что с ним связанно!

Среда, 1.5.2024
Главная » 2010 » Декабрь » 9 » Создание игры. Часть первая
10:17
Создание игры. Часть первая
Открываем программу Game maker. Первое что мы сделаем это, создадим два объекта (Objects). Панель слева, правой кнопкой мыши по "Objects – Create object” или "Shift + Ctrl + O”.

"objMain” – Главный объект,
"objPlayer” – Главный персонаж.

Обратите внимание на то, как я их назвал. Это очень важно! Придерживайтесь такому правилу и у вас не возникнет никаких проблем в дальнейшем. Как говорится, любой дом начинается с хорошего фундамента. Самые яркие примеры как не стоит называть объекты: "object32”, "Player”, "herospr”.
Пишите своим объектам первые три, четыре буквы их принадлежности. Например:

sou – Звук,
bac – Фон,
scr – Скрипт.

А дальше название объекта без пробелов с большой буквы. Например – souFire, bacGrass, scrDialog.

Создадим две константы (Constants). Из теории константа в программирование это переменная, которая создается в самом начале программы и ее нельзя изменить в процессе работы приложения.
Для вызова формы с константами нажмите "Shift + Ctrl + N”. В появившемся окне в форме "Name” вводим "PLAYER”, а в "Value”(Значение), в нашем случае это " objPlayer”. Проделываем такую же операцию с объектом "objMain” толко в поле "Name” введем "MAIN”.
Пару слов для чего мы все это делаем. Это делается для удобства работы в дальнейшем с часто используемыми объектами. К примеру:
"PLAYER.Money+=100;”
Процедура описывает объект, с которым мы работаем. Вся прелесть в том, что такая процедура работает с локальными переменными объекта "objPlayer” в любом другом объекте.

Далее создаем спрайт (изображение) для игрока. Левая панель с названием "Sprites” правой кнопкой мыши, выбрать "Create sprite”. Для быстрого вызова нажмите "Shift + Ctrl + S”. В появившемся окне в поле "Name” впишем "sprPlayer”. Далее нажимаем ниже кнопку "Edit sprite”. В новом окне "File - New”, вводим размеры. Используем размер 64 на 64. Рисуем шарик. Нарисовали, жмем зеленые галочки для подтверждения. Выходим в главную панель спрайта и в форме "Origin” жмем кнопку "Center” для центрирования нашего изображения. На этом наш спрайт готов жмите кнопку "OK”.

Давайте присвоим наше изображение игроку. Открываем объект "objPlayer”, в поле "Sprite” жмем по "<no sprite>” и выбираем "sprPlayer”. Жмем ок и закрываем объект.

Создадим движения для игрока. Для начала создадим переменную в объекте "objMain”.
Открываем его, ищем кнопку "Add Event”, нажимаем. В появившемся окне самая первая кнопка с изображением лампочки и названием "Create”. Жмите на нее. Если все удачно произошло тогда наша кнопка появится в списке "Events”. Далее в самой правой панели где перечисляются такие вкладки как "Move, Main1, Main2” выбираем "Control”. В форме "Code” находим кнопку "Execute code” и перемещаем ее в область "Action”. Создали, кнопка переместилась. Открываем ее.
Появилось большое окно по принципу напоминающее больше блокнот. Привыкайте к нему. Это то самое место, к которому вы будете возвращаться снова и снова.
Опишем первую переменную. "PlayerSpeed = 4;”. Она будет отвечать за скорость перемещения игрока по игровому полю. Нажимаем "Ок”, первая переменная готова. Закрываем объект.
Далее создадим движение для игрока. Открываем объект "objPlayer”. Поступаем по такому же принципу что и с объектом "objMain” только создадим событие (Events) не "Create”, а "Step”. Их отличие в том что первое событие описывает создание переменных и их значений, а второе их действие. Производит движение, манипуляцию переменными. Представьте что "Create” - это статичность (голова), "Step” – это динамичность (ноги).
Введите следующий код для движения главного перснонажа:

// Движение игрока
if keyboard_check(vk_up) or keyboard_check(ord('W')) then y-=MAIN.PlayerSpeed;
if keyboard_check(vk_down) or keyboard_check(ord('S')) then y+=MAIN.PlayerSpeed;
if keyboard_check(vk_left) or keyboard_check(ord('A')) then x-=MAIN.PlayerSpeed;
if keyboard_check(vk_right)or keyboard_check(ord('D')) then x+=MAIN.PlayerSpeed;
//;

Давайте немного рассмотрим этот код.
"if” (Если) - это логическая команда. Она проверяет событие. В нашем случае нажатие клавиш для перемещения игрока. Команда "or” (Или) проверяет дополнительные события. В нашем случаю получается, что они работают с разными проверками условий но имеют одно общее действие. К действию призывает и описывает команда "then” (Тогда).
В любом языке программирования присутствуют следующие логические операции:

if – Если,
or – Или,
and – И,
then – Тогда,
else – Или же, и т.д..

Ниже добавим еще одну строку кода
image_angle = point_direction(x, y, mouse_x, mouse_y)

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

Image_angle - Поворот картинки,
point_direction - Направление,
x – Позиция игрока на уровне,
mouse_x – Позиция мыши на уровне.

Перейдем к небольшому первому тесту нашей проделанной работы. Для этого понадобится создать комнату(Room). Нажмите правой кнопкой мишы по вкладке в главной панели слева "Rooms – Create Room”. Быстрые клавиши создания "Shift + Ctrl + R”. Самая первая вкладка на которую вы смотрите, называется "objects”. Назначение ее я думаю вы поняли. Добавьте в комнату два наших объекта, причем объект "objMain” в самый левый верхний угол. Объект "objPlayer” постарайтесь разместить по центру комнаты. Нажмите "ОК”. Теперь мы готовы к первому запуску нашей бедующей игры!
Нажмите клавишу "F5”. Должно появиться окно игры с игроком в центре экрана. Попробуйте перемещаться, нажимая клавишами описанными нами выше. Если все получилось, можете себя похвалить! Если при запуске выскакивает ошибка значит вы где то допустили ошибку. Подробно ознакомтесь с описанием ошибки. Пересмотрите урок еще раз. Попытайтесь ее исправить.

Сохраните игру нажав кнопку "File – Save As”. Первая часть обучения на этом заканчивается. В следующей статье мы научимся работать с массивами и сделаем возможность стрельбы для главного персонажа, оружия, патроны, перезарядку.

http://www.gmexe.ru/example/TDS_1.gmk

gmExe.ru ©

Категория: Уроки | Просмотров: 1636 | Добавил: gmExe | Теги: уроки, Создание игры, стрелялка, Новичкам
Всего комментариев: 0
dth="100%" cellspacing="1" cellpadding="2" class="commTable">
Имя (обязательно): Сайт (если есть):


Код *: