game maker переход в другую комнату

Game maker переход в другую комнату

Для начала нам предварительно нужно найти в папке Game Maker’а Exaples и в нём treasure.gmk. С его помощью будем изучать комнаты. Скачали? Тогда откройте этот файл и поиграйте немного, нажав на кнопку
Запустить игру. Если вы немного поиграли, приступим к изучению. Нажмите два раза на папку Rooms и два раза на room0.

Наведите курсором на иконки сверху и изучите их. Некоторые из них не переведены, поэтому смотрите, что они обозначают:
1) Очистить комнату 2) Двигать объекты/тайлы на X и Y пикселей 3) Отразить горизонтально все объекты/тайлы 4) Отразить вертикально все объекты/тайлы 5) «Заморозить» объекты/тайлы в комнате (запретить удаление) 6) «Разморозить» объекты/тайлы в комнате (разрешить удаление).

Откройте вкладку Виды. Поставьте галочку Использовать виды. Вы включили использование видов. Всего можно использовать 7 видов. Поставьте галочку Включить вид в комнате. X и Y под надписью «Вид в комнате» это координаты вида в комнате, а W и H высота и ширина вида. Сделайте X 122, Y 192, W 250, а H 200. X и Y под надписью Порт на экране это координаты окна, а W и H высота и ширина окна. Для того чтобы вид следовал за объектом нужно нажать на ячейку под Следовать за объектом и выбрать там нужный объект. Выберите объект explorer. X гр и Yгр это граница вида, при «пересечении» которой вид начинает двигаться за объектом. Xск и Yск это скорости движения вида за объектом. Сделайте Xгр 125, Yгр 100, Xск 3,Yск 3.

Откройте вкладку Объекты. Чтобы выбрать объект который необходимо разместить в комнате нужно нажать на прямоугольную область выше надписи «Объект для доб.лев. кнопкой» и выбрать в появившемся списке нужный объект. Чтобы разместить объект в комнате нужно нажать левой кнопкой мыши на нужном месте. Добавьте объекты на пустое место в комнате. Чтобы объекты при совпадении координатами не удалялись нужно убрать галочку Удалить при обновлении. Для удаления объекта нужно нажать на него правой кнопкой мыши.

Откройте вкладку Фоны. Поставив галочку Рисовать цвет фона цвет фона будет серым если не выбрано фоновое изображение. Цвет можно поменять, нажав на серый прямоугольник рядом с надписью «Цвет». Если убрать галочку Видим при старте фон не будет виден. Если поставить галочку на Рисунок на передний план, то фон будет на переднем плане. Чтобы выбрать фон нужно нажать на прямоугольную ячейку под галочкой «Рисунок на передний план». Гор.тайл и Вер.тайл обозначают, будет ли повторяться фон. X и Y это смещение фона на X и Y пикселей. Нажав на галочку Растягивание, фон растянется по всей комнате. Гориз.ск-ть и Верт.скорость это скорость движения фона.

Теперь создайте новую комнату и расставьте там объекты, сделайте фон, и разместите тайлы. Чтобы добавить комнату нужно нажать правой кнопкой мыши на папку Rooms и выбрать там Create Room.

Источник

Game maker переход в другую комнату

Когда Вы создаёте большую комнату, например, в платформенных играх с небольшим видом, много образцов объекта находится за пределами вида. Такие образцы всё ещё активны и выполняют указанные события. Также, например, выполнение столкновения проверяет, будут ли эти образцы объекта приняты во внимание. Это может затратить много времени. (Например, часто бывает не важно, что образец объекта находиться за пределами перемещения вида.) Чтобы решить эту проблему Game Maker содержит некоторые функции, чтобы деактивировать и активировать образцы объекта. Перед их использованием, Вы должны ясно понимать, как они работают.

Когда Вы деактивируете образцы объекта, то они, в некотором значении, удаляются из игры. Они не являются больше видимыми, и любые события для них не выполняются. И для всех действий и функций они уже больше не существуют. Это экономит много времени, но Вы должны быть всё же осторожны. Например, когда Вы удаляете все образцы объекта конкретного типа, деактивированные образцы объекта не удаляются (поскольку они не существуют). Так что не думайте, что играющий нажатием клавиши может открыть деактивированную дверь.

Наиболее частую критическую ошибку, которую Вы можете совершить, так это деактивировать образец объекта, который несёт ответственность для активации. Чтобы избежать этого, существуют некоторые подпрограммы, находящиеся ниже, которые не позволят вызываемому образцу объекта деактивировать себя.

Вот доступные подпрограммы:

Например, чтобы деактивировать все образцы объекта за пределами вида и активировать их в виде, Вы можете вставить следующее коды в событии шага движущегося персонажа:

На практике, Вы могли бы захотеть использовать область немного большую, чем область вида.

Синхронизация

sleep(numb) «Заморживает» игру на numb миллисекунд.

Вы уже должны знать, что каждый образец объекта имеет 12 таймеров, которые Вы можете установить. Чтобы изменить значения (или получить значения) другого таймера, используйте следующие переменные:

alarm[0..11] Значение для указанного таймера. (Не забудьте, что таймер будет вести отсчёт только в том случае, если событие таймера для объекта содержит действия!)

Мы рассматриваем это для комплекса вопросов по синхронизации. Вы можете также использовать ресурс тайм-лайна. Каждый образец объекта может связать с собой ресурс тайм-лайна. Следующие переменные имеют дело именно с этим:

Комнаты

Игры работают в комнатах. Каждая комната имеет идентификатор, который указывается названием комнаты. Текущая комната загружается в переменную комнаты. Вы не можете допустить, чтобы комнаты были перечислены в последовательном порядке. Так что, никогда не добавляйте или не вычитайте число из переменной для комнаты. Взамен используйте функции и переменные указанные ниже. Вот типичная часть кода, которую Вы будете использовать :

Следующие переменные и функции имеют отношение к комнатам.

room Cодержит индекс текущей комнаты, но Вы лучше используйте подпрограммы ниже.
room_first* Содержит индекс первой комнаты в игре.
room_last* Содержит индекс последней комнаты в игре.
room_goto(numb) Совершает переход в комнату с идентификатором numb.
room_goto_previous() Совершает переход в предыдущую комнату.
room_goto_next() Совершает переход в следующую комнату.
room_restart() Перезапускает текущую комнату.
room_previous(numb) Возвращает индекс предыдущей комнаты (-1 = ничего), но не совершает переход в неё.
room_next(numb) Возвращает индекс следующей комнаты (-1 = ничего), но не совершает переход в неё.
game_end() Завершает игру. (Точнее, игра заканчивается после того, как сценарий был выполнен, не в течении его выполнения).
game_restart() Перезапускает игру. (Точнее, игра перезапускается после того, как сценарий был выполнен, не в течении его выполнения.)

Комнаты имеют множество дополнительных свойств:

room_width* Содержит ширину комнаты в пикселях.
room_height* Содержит высоту комнаты в пикселях.
room_caption Содержит строку, которая будет выводиться в заголовке окна игры.
room_persistent Определяет, является ли комната постоянной.

Многожество игр предлагают играющему возможность сохранять и/или загружать игру. В Game Maker это происходит автоматически, когда пользователь нажимает для сохранения и для загрузки. Вы можете также сохранять и загружать игры из части кода (отметьте, что загрузка будет происходить только в конце текущего шага).

Пожалуйста, поймите, что сохраняются только основные данные игры. Если, например, проигрывается определённый отрезок музыки, то точная его позиция не сохраняется. Также не сохраняются изменённые ресурсы. Не сохраняются и такие вещи как: дата-структуры, частицы и установки многопользовательской игры.

Переходы

transition_kind устанавливает переход между комнатами. Вы можете использовать следующие встроенные значения

0 = no effect (нет эффекта)
1 = Create from left (появление слева на право)
2 = Create from right (появление справа на лево)
3 = Create from top (появление сверху вниз)
4 = Create from bottom (появление снизу вверх)
5 = Create from center (появление из центра)
6 = Shift from left (выдвиг слева на прово)
7 = Shift from right (выдвиг справа на лево)
8 = Shift from top (выдвиг сверху вниз)
9 = Shift from bottom (выдвиг снизу вверх)
10 = Interlaced from left (чередующееся появление слева на право)
11 = Interlaced from right (чередующееся появление справа на лево)
12 = Interlaced from top (чередующееся появление сверху вниз)
13 = Interlaced from bottom (чередующееся появление снизу вверх)
14 = Push from left (сдвиг слева на прово)
15 = Push from right (сдвиг справа на лево)
16 = Push from top (сдвиг сверху вниз)
17 = Push from bottom (сдвиг снизу вверх)
18 = Rotate to the left (появление из центра с вращением против часовой)
19 = Rotate to the right (появление из центра с вращением по часовой)
20 = Blend the rooms (плавное проявление)
21 = Fade out and in (исчезание и появление)

Пожалуйста, обратите внимание, что переходы не работают при использовании 3D графики. Также, переходы работают неправильно, когда размеры комнат не одинаковые.

Игровой счёт

score Cодержит текущий игровой счёт.
lives Содержит текущее количество жизней.
health Содержит текущее здоровье (0-100).
show_score Определяет, отражать ли игровой счёт в заголовке окна или нет.
show_lives Определяет, отражать ли количество жизней в заголовке окна или нет.
show_health Определяет, отражать ли текущее здоровье в заголовке окна или нет.
caption_score Определяет, что будет написано перед значением игрового счёта в заголовке окна.
caption_lives Определяет, что будет написано перед значением жизней в заголовке окна.
caption_health Определяет, что будет написано перед значением здоровья в заголовке окна.

Генерация событий

Как Вы уже знаете, Game Maker является полностью управляемым событиями. Все действия случаются после результатов событий. Есть множество различных событий. События создания и уничтожения случаются, когда образец объекта создаётся или уничтожается. В каждом шаге, сначала система проводит операции события сигнала-таймера. Затем, оперирует события клавиатуры и события мыши, а затем событие шага. После того, как образцы объектов будут установлены в свои новые позиции, после чего прооперируется событие столкновения. Наконец, используется событие рисования для рисования образцов объекта (отметьте, что когда есть много видов, то событие рисования вызывается многочисленное количество раз в каждом шаге). Вы можете также применить события к текущему образцу объекта из части кода. Следующие функции существуют:

ev_left_button
ev_right_button
ev_middle_button
ev_no_button
ev_left_press
ev_right_press
ev_middle_press
ev_left_release
ev_right_release
ev_middle_release
ev_mouse_enter
ev_mouse_leave
ev_mouse_wheel_up
ev_mouse_wheel_down
ev_global_left_button
ev_global_right_button
ev_global_middle_button
ev_global_left_press
ev_global_right_press
ev_global_middle_press
ev_global_left_release
ev_global_right_release
ev_global_middle_release
ev_joystick1_left
ev_joystick1_right
ev_joystick1_up
ev_joystick1_down
ev_joystick1_button1
ev_joystick1_button2
ev_joystick1_button3
ev_joystick1_button4
ev_joystick1_button5
ev_joystick1_button6
ev_joystick1_button7
ev_joystick1_button8
ev_joystick2_left
ev_joystick2_right
ev_joystick2_up
ev_joystick2_down
ev_joystick2_button1
ev_joystick2_button2
ev_joystick2_button3
ev_joystick2_button4
ev_joystick2_button5
ev_joystick2_button6
ev_joystick2_button7
ev_joystick2_button8

Для события столкновения, Вы присваиваете идентификатор другого объекта. Наконец, для другого события, Вы можете использовать следующие константы:

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

Вы можете получить информацию о текущем событии, используя следующие переменные «только для чтения»:

Дополнительные переменные и функции

Вот некоторые переменные и функции, которые имеют дело с ошибками.

error_occurred Указывает, произошла ли ошибка
error_last Содержит последнее сообщение об ошибке
show_debug_message(str) Показывает строку в отладочном режиме

Следующее функций позволяет Вам проверить то, что если определённые переменные существуют, то Вы можете их установить и получить различные величины. Во всех этих функциях, имя переменной проходит как строка!

variable_global_exists(name) Возвращает, если глобальная переменная с заданным именем (строки) существует.
variable_local_exists(name) Возвращает, если локальная переменная с заданным именем (строки) существует для текущего образца объекта.
variable_global_get(name) Возвращает значение глобальной переменной с заданным именем (строки).
variable_global_array_get(name,ind) Возвращает значение индекса ind глобальной переменной массива с заданным именем (строки).
variable_global_array2_get(name,ind1,ind2) Возвращает значение индекса ind1,ind2 глобальной 2-мерной переменной массива с заданным именем (строки).
variable_local_get(name) Возвращает значение локальной переменной с заданным именем (строки).
variable_local_array_get(name,ind) Возвращает значение индекса ind локальной переменной массива с заданным именем (строки).
variable_local_array2_get(name,ind1,ind2) Возвращает значение индекса ind1,ind2 локальной 2-мерной переменной массива с заданным именем (строки).
variable_global_set(name,value) Устанавливает глобальную переменную с заданным именем (строки) в заданное значение.
variable_global_array_set(name,ind,value) Устанавливает индекс ind в глобальную переменную массива с заданным именем (строки) в заданное значение.
variable_global_array2_set(name,ind1,ind2,value) Устанавливает индекс ind1,ind2 в глобальную 2-мерную переменную массива с заданным именем (строки) в заданное значение.
variable_local_set(name,value) Устанавливает локальную переменную с заданным именем (строки) в заданное значение.
variable_local_array_set(name,ind,value) Устанавливает индекс ind в локальную переменную массива с заданным именем (строки) в заданное значение.
variable_local_array2_set(name,ind1,ind2,value) Устанавливает индекс ind1,ind2 в локальную 2-мерную переменную массива с заданным именем (строки) в заданное значение.

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

Вы можете изменить приоритет программы, используя следующую функцию:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *