cool20141 cool20141

<a href= http://mosros.flybb.ru/viewtopic.php?f=2&t=635>Процесс получения диплома стоматолога: реально ли это сделать быстро?</a>

danilaxxl danilaxxl

CollectableItemData.cs

[CreateMenuItem(fileName = "newItem", menuName = "Data/Items/Collectable", order = 51]

GoloGames GoloGames

vadya_ivan, рад, что вам игра показалась интересной : )

P.S. Кстати уже доступна бесплатная демо-версия в Steam

vadya_ivan vadya_ivan

Визуал, задумка, музыка , механики, все в цель

GoloGames GoloGames

Ato_Ome, спасибо за позитивные эмоции, будем стараться : )

Ato_Ome Ato_Ome

Потрясающий результат, все так четенько, плавненько)
То ли саунд, то ли плавность напомнили мне игрушку World of Goo, удачи вам в разработке и сил побольше дойти до релиза!)

Cute Fox Cute Fox

Graphics are a little cool, good HD content. But this game doesn't cause nary interest me.
However the game is well done.

GMSD3D GMSD3D

Почему действие после всех условий выполняется?
[step another object]

Zemlaynin Zemlaynin

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

Jusper Jusper

Zemlaynin, а карьеры можно будет везде запихать?
Или под них "особые" зоны будут?

Zemlaynin Zemlaynin

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

Jusper Jusper

А ссылка есть?

Jusper Jusper

Я не оч понял из скриншота, как вообще работает стройка. У игрока будет как бы поле строительства?

split97 split97

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

split97 split97

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

ViktorJaguar ViktorJaguar

Почему я нигде не могу найти нормальный туториал, где покажут как экипировать предмет (например, меч) в определенную (выделенную под оружие) ячейку???

Логотип проекта Game Maker

GM:S Заскриптованное движение и его запись

Что такое заскриптованное движение?

Начнём с того, что заскриптованным может быть не только движение. Скрипт - это английское слово(script) и переводиться оно как сценарий. Эти самые сценарии хранят информацию о всех событиях, которые поджидают игрока при прохождении игры. Заскриптованное движение - движение по определённому маршруту. В этой статье мы будем реализовать как само чтение этого маршрута, так и его запись во время игры.

Теория

Вспомним уроки информатики. Какие бывают алгоритмы?

  • Линейные
  • Ветвистые
  • Циклические

Только сравнивать скрипты со сценариями из оперы/балета не стоит, а то может образоваться мнение, что все скрипты представляют собой линейные алгоритмы. Скрипт может циклиться и иметь условия. В нашем случае мы будем использовать ветвисто-циклические алгоритмы(кто запретил их комбинировать). Нам понадобится некая таблица. Строками будет координата x, а столбцами y. А в ячейках будет записана информация о движении в этих координатах. Мы будем двигать машинки. Когда они будут в указанных координатах, они возьмут из ячейки направление и будут ему следовать. Поехали!

Практика

Заранее подготовим спрайты машинок и добавим в проект.

GM:S Заскриптованное движение и его запись — Game Maker — DevTribe: инди-игры, разработка, сообщество

Теперь создадим комнату. Мы будем использовать виды. Размеры комнаты и её вида не важны, но я буду использовать стандартные размер вида и в несколько раз увеличенные размеры комнаты.

Теперь можно перейти к объектам. Для начала создадим таблицу. Для неё мы будем использовать отдельный объект. Назовём его md(у меня проблема с названиями :D). Создадим событие создания и засунем туда следующий код:

//Создаём координатную сетку размером с комнату
dir=ds_grid_create(room_width,room_height);

//Устанавливаем всем ячейкам сетки значение false
ds_grid_add_region(dir,0,0,room_width,room_height,false);

Вы наверное офонарели. Какая координатная сетка? Мы разве не таблицу создаём?
-Да. Мы создаём таблицу
Таблица это способ структурирования данных. Она представляет собой систему ячеек, каждая из которых находится на пересечении столбца и строки. Если подумать, то каждая ячейка помимо хранящегося в ней значения имеет ещё две величины. Это столбец и строка на пересечении, которых находиться ячейка. Так вот в нашем случае этими величинами будут x и y.

Сделаем несколько переносов строки(а то я сам запутался) и продолжим. ds_grid(координатная сетка) это тип данных в gms. Это некая сетка разбитая на ячейки, которые находятся между координатами x и y. Её может заменить и двумерный массив, но мы будем использовать именно ds_grid, т.к. она содержит ряд нужных нам функций. А вот их их описание:

Создаёт координатную сетку и записывает её идентификатор в переменную, который понадобится нам для операций с этой сеткой

переменная=ds_grid_create(ширина,высота);

Добавляет значение всем ячейкам в прямоугольном регионе. Он задаётся координатами верхней левой и нижней правой точками

GM:S Заскриптованное движение и его запись — Game Maker — DevTribe: инди-игры, разработка, сообщество
ds_grid_add_region(идентификатор сетки(или переменная содержащая его),x 1 точки,y 1 точки,x 2 точки,y 2 точки,значение);

Получает значение в указанных координатах

переменная=ds_grid_get(идентификатор сетки,x,y);

И бонусом переменные room_width и room_height это ширина и высота комнаты.
Теперь как сетка создана и всем ячейкам прописано false, можно приступать к созданию машинок.
У нас будет два состояния машинки:

  • Обучение(Запись)
  • Практика(Воспроизведение)

Создадим объект car_edu. Это обучающее состояние машинки. Я использую чуть ли не самую простую систему перемещения, т.ч. комментировать её не буду. Самое интересное ждёт нас в событии движения. В нём мы напишем:

ds_grid_set_region(md.dir,x-64,y-64,x+64,y+64,direction);

И вы должны были узнать, ds_grid_set_region и думаю без труда поймёте, что он тут делает. А он здесь записывает текущее направление в ячейки региона 128x128 центром которого является машина. Теперь при езде наш ученик записывает в ближайшие ячейки сетки своё направлению. Его будет читать второе состояние и следовать ему. А вот и пришло время создать объект для него. Назовём его car_test.
В Step пишем достаточно простой код(половиной которого являются комментарии):

/*
Если в текущей координате сетки не записан false
меняем направление на то, что там записано
*/
if ds_grid_get(md.dir,x,y)!=false
{
    direction=ds_grid_get(md.dir,x,y)
}

Теперь машинка меняет своё направление на значение записанное в ячейке с текущими координатами.
И конечно не забываем поставить ей скорость:

speed=15;

Для смены состояния будем использовать instance_change

instance_change(car_edu,true);

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

GM:S Заскриптованное движение и его запись — Game Maker — DevTribe: инди-игры, разработка, сообщество

Исходник

DropBox
Google Drive
Яндекс. Диск

Смотрите также:


Комментарии

Здесь еще никто не оставил комментарий

Справка