Как сделать ферму в game maker

Добавил пользователь Владимир З.
Обновлено: 04.10.2024

Это небольшая статья об конструкции with и способах её применения. Предполагается, что вы уже знаете о gml и его синтаксисе, понимаете разницу между объектом и его образцами (образцы объекта), а также знаете о специальных объектах other, all, noone, self.

Примечание: Поскольку в txt2 нет разметки gml-кода, я взял на себя труд выделить ключевые слова, так, как они выглядят по-умолчанию в самом gml, чтобы код выглядел более-менее читабельным.

Конструкция with имеет несколько применений. Первоначальное применение - конструкция предназначена для выполнения одинаковых действий над всеми образцами объекта, имя которого указано в . То есть, по сути, это особая форма цикла.

Как видно из примера, конструкция в цикле переберёт все образцы объекта obj_ball которые есть в комнате и передвинет их по оси х на 5 единиц вправо.
Кроме того, все действия и переменные, которые выполняются в конструкции with становятся локальными для образца в цикле, а образец, который вызвал with - внешним, и внутри самой конструкции к нему уже нужно обращаться как специальному объекту other .

Конструкция имеет другое важное применение. Она может служить для идентификации конкретного образца, и выполнению над ним действий из другого объекта. Как известно, в gml есть функции, которые работают только для конкретного образца объекта - для того, из которого его вызвали. Примером может служить функция instance_destroy() которая не имеет параметров, и уничтожает тот образец, из которого его вызвали (кстати, единственная функция, которая удаляет объекты).

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

Пример 1

Например, при взрыве (событие destroy) объекта "ракета" (obj_rocket), нужно нанести урон ракеты (damage) всем юнитам (obj_unit) в радиусе 150, и у тех, у кого здоровья (current_hp) меньше нуля - уничтожить.

with ( obj_unit ) //Начало цикла
if( distance_to_object (other. id ) //как видно, функция distance_to_object() возвращает расстояние от юнита до ракеты, а не наоборот, так как внутри конструкции они меняются местами, и теперь obj_rocket=other.id
current_hp-=other.damage //По сути, это сам юнит наносит сам себе урон, а урон мы берём из объекта ракеты.
if(current_hp instance_destroy () //Вот тут юнит уничтожит сам себя, если его здоровье ниже нуля.
>
>
>

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

Пример 2

Пример 3

С помощью объекта obj_player создадим объект obj_missle, и зададим ему начальную скорость и случайное направление движения. Событие не важно, предположительно, это нажатие на кнопку.

DELETED

Мы с ребятами создали игру и хотели бы получить с нее прибыль. Но как это сделать мы не знаем.
Подскажите плиизз.

Михаил Павловец

Павел Пеганов

Слава Швец

Макс Слинкин

Денис Малышев

Михаил Павловец

DELETED

Павел Пеганов

Филипп, потому что нужно самому озаботиться рекламой, работой с полученными средствами и множеством платёжных систем, а также продвигать свой сайт. Для этого нужно время и деньги, которые впоследствии, возможно окупятся - но они должны хотя бы существовать.
Самый простой способ - это угодить в каталог большого издателя, чей сайт уже мощно раскручен, а также налажены платежи, удобные для пользователей, плюс, возможно, даже свой API для "социализации" игроков, вроде достижений и системы "друзей". И просто отдавать ему процент с продаж. Есть за что.

DELETED

Павел, насчет денег не согласен—сайт для начала можно сделать на народе, а продвижение также можно реализовать в яндекс вебмастере.

Павел Пеганов

Филипп, так уверены? Попробуйте. Много потенциальных посетителей на сайт не перейдут уже потому, что увидят в домене "народ".

DELETED

Павел Пеганов

Филипп, и стабильным не будет, потому что сколько-нибудь крупный полезный портал вы на Народе не удержите, там серверного софта очень мало, и сайты мало чем могут хвастаться, кроме чистого HTML/JS/CSS. Интерактива и живости минимум.

DELETED

Павел Пеганов

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

DELETED

Дима Цмох

Павел Пеганов

Дима, интересует не количество, а время, которое игрок за ними проведёт - беря в расчёт то, что ему может надоесть (если механика однообразна) или захочется пройти ещё раз (если есть причины, вроде ачивок, интересной механики или расширяющейся со следующим прохождением механики), а также прочие подобные мелочи.

Давид Меликбекян

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


Сегодня мы поговорим о весьма актуальной вещице, которая поможет Вам в продвижении по моду Forestrty - о Мультиферме, которая ранее была запрещена (даже скажу более, находилась она в стадии разработки и устранении дюпов|багов).
Что же, ушли наши старые-добрые сборщики арбузов, пшеницы, дерева и кактусов, но на их место пришла эта махина! Она не только выполняет функцию авто-рассадки, но и сам собирает продукты и "выплёвывает" их из специального блока.
Чему же посвящена сегодняшняя статья? Посвящена же она правильной установке фермы и ее настройках под разные режимы.

Итак, для того, чтобы приступить к созданию этой фермы, нам понадобятся такие блоки, как :


[слева направо - Блоки фермы; Редуктор; Люк; вентиль; каменные кирпичи;]
Разумеется, это мой выбор. На самом деле, текстур у этой фермы куча и разница в них только лишь в оформлении.
Итак, существует всего 5 размеров этих машин - Маленькая [3x3x4], средне-малая [3х4х4], средняя [4x4x4], средне-большая [3x5x4] и большая [5x5x4]. Разницы у них нет, разве что в площади работы. Разберем маленькую ферму.


Что же делают эти штучки? Редуктор собирает энергию RF для работы; Люк выбрасывает готовую продукцию из себя; Вентиль всасывает воду для работы.
Установив данные компоненты, подключаем к каждому из них то, с чем они могут работать (Р - провода; В - трубы; и.т.п). Далее, заканчиваем нашу конструкцию, достроив структуру на 3 блока вверх.



Должно получиться примерно вот так :

Как построить любую ферму Forestry?

Это, пожалуй, самая легкая часть. Здесь нам нужно построить платформу.
Схема :

Как построить любую ферму Forestry?

То, что получилось у меня :

Как построить любую ферму Forestry?

Готово! Установка завершена! Перейдем к настройке!

Итак, настройка осуществляется внутри этой структуры. Рассмотрим ее GUI :

Как построить любую ферму Forestry?

Без платы эта структура автоматически настроена на деревья - она их сажает и рубит, но это можно изменить при помощи печатных плати специальных лампочек.
Всего существует 4 вида плат и различаются они только по количеству слотов для ламп :


"Но для чего же нужны эти платы?" - спросят многие. Я вам скажу, что платы эти нужны для того, чтобы настраивать фермы и апгрейдить движки.
Чтобы апгрейдить фермы, нам понадобится паяльник, а также лампы для нужного типа фермы.






Надеюсь, что Вам понравилась статья. Если желаете отблагодарить меня, то просто нажмите "Спасибо" или напишите комментарий.

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


(он находится тут: sprites->buttons->button_play). Назовите этот спрайт s_play и нажмите на кнопку "По центру". Нажмите ок. Первый спрайт готов. Мы его видим в меню слева.

Теперь нажмите на этот спрайт правой кнопкой мыши. Появится окошко с функциями. Кликните по функции "дублировать". Появится точно такой же спрайт. Только называться он будет по другому - sprite1. Итак, нажмите "редактировать". Затем нажмите на карандашик в правом верхнем углу. Теперь можем спокойно редактировать спрайт. Наша задача, залить белые участки красным цветом. Главное случайно не закрасить буквы. Иначе вы сами знаете, что выйдет.

Залили все белые участки красным цветом? Хорошо! Теперь сохраняем спрайт, нажав на зелёную галочку. Далее ещё раз на галочку. Выдадим спрайту имя - s_play2. Спросите зачем заливать красным?Читаем дальше.


Он похож на первый спрайт, правда? Но всё же текст там другой. Ладно, продолжим. Назовите этот спрайт - s_quit. Теперь делаем точно такую же операцию, что и со спрайтом s_play. То-есть дублируем его и заливаем красным цветом. Получившийся спрайт называем s_quit2.

Отлично! Мы сделали два спрайта кнопок для меню - играть и выход. Какую кнопку нужно добавить ещё? Конечно информацию об игре(помощь по игре).


Даём ему имя s_info. Затем жмём ок. И опять же дублируем его и заливаем новый спрайт красным цветом. Короче, проводим такую-же операцию, как и со спрайтами s_play и s_quit. Ах да, его имя будет s_info2. Можете радоваться! Вы только что сделали набор нужных спрайтов для меню.

Итак, начинается самое сложное - объекты. Я надеюсь, вы не подумали что мы всё закончили и что осталось разместить объекты на уровне и всё, можно играть? Я надесь, что нет. Хорошо, хватит болтать, приступим к делу.

Создаём объект(если вы не умеете это делать,пишите в комментариях, отвечу). Присваиваем объекту спрайт s_play. Далее создаём событие кликнув по кнопке "добавить событие". Откроется окошко. Кликаем на кнопку "мышь"-->"наведение курсором мыши". Теперь посмотрите на колонку кнопок справа. Нашли?Там такие надписи: move, main1, main2, control и т.д. Нажмите на main1. Вы увидите что картинки изменились. В этих "картинках" найдите рисунок красного пакмэна(Change Sprite). Нажмите на него правой кнопкой мыши. Должно появиться окошко.Нажимаем туда, где стоит курсор на картинке.


Появится список наших спрайтов над которыми мы недавно работали. Выберите в этом списке красную картинку с именем s_play2. Теперь нажмите ок.

Дальше кликаем на "добавить событие". Выбираем - "мышь"-->"покидание курсором мыши". Опять жмём правой кнопкой на пакмэна. В появившемся окне открываем список спрайтов. Выбираем белый спрайт с надписью s_play. Нажмём ок. Снова жмём ок. И очередной раз создаём событие - "мышь"-->"левая нажата".


Нажимаем правой кнопкой мыши на Next Room . Жмем ок. Ура! Мы создали кнопку "играть", которая при нажатии перенесет вас в следующую комнату. Давайте дадим объекту имя o_play.

Теперь надо сделать кнопку "выход".Создаём объект, и сразу, что бы не забыть даём ему имя - o_quit. И сразу понятно что надо присвоить ему спрайт s_quit. Итак, нам надо сделать операции аналогичные тем, что мы проводили с объектом o_play.

Сразу создайте столбец таких же событий что и с предедущим объектом - o_play. Но только в событии левая нажата добавляем немного другое действие - Game End(найти его можно во вкладке Control). Это действие будет выключать игру при нажатии на кнопку. Переходим к "наведение курсором мыши". Добавляем действие с красным пакмэном. Как и в o_play. Ой! Я забыл рассказать что оно делает. Оно изменяет спрайт. То есть при наведении курсором мыши спрайт белой кнопки превращается в спрайт красной кнопки, как во многих играх.

Ладно. Добавляем действие с красным пакмэном. Открываем столбец с перечисленными спрайтами в появившемся окне и в этом столбце нажимаем на спрайт с названием s_quit2. Жмем ок. Давайте обрабатывать событие "покидание курсором мыши". Опять выбираем действие с красным пакмэном. (Ох, я устал от пакмэна уже. ) Появляется окно. В столбце выбираем спрайт с именем s_quit. Жмем ок. Еще раз ок.

Два объекта готовы. Наверное, вам не терпится посмотреть объекты в действии. Но нет игровой информации! Надо сделать.

Снова создаём объект, называем его o_info, присваеваем спрайт s_info и создаём столбец действий, как у объекта o_play и o_quit. В событии "наведение курсором мыши" очередной раз выбираем красного пакмэна, в появившемся окне открываем список спрайтов и выбираем спрайт s_info2. В "покидание курсором мыши" делаем то же самое только выбирайте не s_info2, а s_info. В событии "левая нажата" добавляем действие Show Info (вкладка main2). Теперь жмём ок.

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

Читайте также: