
- •Содержание:
- •Переменные:
- •Логические Операторы и Операции:
- •Логическое && и.
- •Логическое || или
- •Оператор побитового Или |
- •Оператор побитового и &
- •Оператор Круглые Скобки ()
- •Стандартные События объекта.
- •Условные операторы и Конструкции.
- •Условный оператор if..Else:
- •Оператор switch (Переключатель)
- •Конструкция with:
- •Операторы Цикла.
- •Оператор цикла while:
- •Оператор цикла do:
- •Оператор цикла for:
- •Оператор повторения repeat:
- •Функции:
- •Операторы прерывания: «break, exit, continue»:
- •Краткая информация: dll (Dynamic Link Library) библиотеки расширения:
- •Структуры данных:
- •Частицы (Эффекты):
- •Многопользовательские игры (с использованием стандартных средств):
- •3D Графика (3d Режим):
- •Как найти быстро нужную функцию по справке и где её использовать (По логике):
- •Начало:
- •Давняя традиция «Hello World!» или «Привет Мир!»:
- •Работа с текстом:
- •Работа с Числами (Уровень игрока):
- •Создаем «Healthbar» (Индикатор уровня здоровья):
- •Движение в 4 стороны:
- •Drag&Drop или “Тяни и кидай”:
- •Башня с пушкой:
Операторы прерывания: «break, exit, continue»:
Если break используется в цикле for, while, repeat, switch, или в выражении with, то оно завершает выполнение цикла или оператора. Если break используется вне этих выражений, то оно заканчивает выполнение кода (не игры).
Оператор exit завершает выполнение скрипта или части кода.
exit не завершает выполнение игры, Для этого Вы должны использовать функцию game_end();
Если оператор continue используется в цикле for, while, repeat, или в выражении with, то выполнение цикла с текущим значением прерывается и происходит со следующим значением.
На этом мы практически закончили изучение основ языка программирования GML (Game Maker Language).
Сейчас я хочу поговорить о некоторых полезных вещах, таких как DLL (Dynamic Link Library) Библиотека динамических ссылок.
Краткая информация: dll (Dynamic Link Library) библиотеки расширения:
«DLL» Это просто библиотека со встроенными внутри неё функциями, которые, мы можем вызывать и пользовать.
Мало того, библиотека «DLL» может быть написана на другом языке, как пример Delphi, C++.
И это хорошая возможность совместить два языка программирования!
К тому же, библиотека будет работать намного быстрей, чем если бы сделать то же самое в самом «GM».
Поэтому, «DLL» (Dynamic Link Library) Библиотека динамических ссылок, очень полезная штука.
Кстати, Игровой конструктор «Game Maker» написан на языке программирования Delphi.
О подключении Библиотеки «DLL» я буду писать где-то к концу этой книги.
Структуры данных:
В Конструкторе «Game Maker», есть ещё некоторые полезные вещи, такие как:
Стек (Stack)
Очередь (Queue)
Список (List)
Словарь (Map)
Приоритетная Очередь (Priority Queue)
Стек (Grid)
Но так как это функции, то мы их не будет рассматривать тут, будем использовать их только по мере нужности.
Но вы можете посмотреть о них в стандартной справке, есть на русском тут.
Частицы (Эффекты):
Конструктор так же предоставляет нам такую возможность, как «Создание Частиц».
Частицы – это не большие элементы в виде Спрайтов. Такие частицы могут перемещаться по заданным правилам, и во время передвижения менять свои параметры – размер, поворот, цвет и т.д. Множество частиц могут вместе создавать такие эффекты, как огонь, взрывы, фейерверки, снег, дождь, звёздное небо и т.д.
Подробно читайте в справке.
Многопользовательские игры (с использованием стандартных средств):
Конструктор нам предоставляет и такую возможность как, создавать многопользовательские игры, пользуясь стандартными средствами.
Но я бы предпочел, и предпочитаю, создание многопользовательской игры на основе использования «DLL» Библиотеки динамических ссылок.
3D Графика (3d Режим):
Игровой конструктор «Game Maker» поддерживает и примитивную 3D графику, включив 3D режим, вы можете создавать 3D Игры, но не малое количество возможностей движка сразу отбрасывается. И всё становится в разы сложнее.
Так как книгу я готовлю исключительно для 2D игр, то 3D играми мы не будем заниматься, и рассматривать 3D режим мы тоже не будем. Но если вы хотите сделать ну или хотя бы попробовать это, то я бы советовал вам использовать какие-то Библиотеки расширений.
Как найти быстро нужную функцию по справке и где её использовать (По логике):
Это довольно таки просто, представьте, что вы придумали игру, и в ней нам нужно реализовать передвижение на клавишах, тогда мы вспоминаем, как клавиатура называется на Английском, или же, прям на Русском, пишем в поиске справки (только если ваша справка на Русском):
Клавиатура или на Английском Keyboard.
Далее, в найденном нами содержании, ищем то, что нам нужно, к примеру, если нам нужно передвижение на клавишах, а нам это и нужно, то мы можем взять функцию keyboard_check(key).
Но как мы узнаем, что это именно та функция?
По описанию после названия функции.
Естественно, вы можете не искать эту функцию, а просто воспользоваться стандартным Событием нажатия клавиши, но тогда, вам нужно сделать такое событие на каждую клавишу, если ваш объект должен двигаться в больше чем одну сторону.
Ещё одно, не стоит забывать о правилах событий, об их цикличности, поскольку если данную функцию реализовать в событии Создания, то ничего работать не будет, надеюсь, вы понимаете почему.
Но на всякий пожарный, я объясню:
Дело в том, что для движения вправо, пока нажата клавиша нужно постоянно к «x» координате объекта прибавлять +1, x += 1; и если это выражение будет в событии «Создание» то оно пройдет всего 1 раз при создании объекта и всё.
Для таких выражений используется событие «Шаг» (Step), потому что, тут есть бесконечный цикл, и в нем функцию keyboard_check(key) будет проверяться каждый Шаг, тогда если она возвращает правду 1 или true, то к координате «x» будет добавляться +1;
Если у вашего объекта должен быть шаг в +1, ведь он может быть и +5 и +25.
Теперь мы знаем, что это нужно реализовать в событии «Шаг» (Step).
Это выглядело бы так:
if(keyboard_check(vk_right))
{
x += 1;
}else if(keyboard_check(vk_left))
{
x -= 1;
}
Тут представлено движение объекта вправо и влево, в котором находится данный код.
На этом мы пока заканчиваем, и давайте займемся уже делом, так как вы уже много чего знаете.