Jusper Jusper

Невероятно круто! Рад наконец увидеть тизер и новые сценки.
Расскажешь потом что-нибудь интересное?

TheDarkestRed TheDarkestRed

Продолжаем отрабатывать боевку - новая механика магического щита и дополнительные анимации героя
#gamedev #indiedev #unity #thedarkestred

Jusper Jusper

EfimovMax есть че сказать по этому поводу?

coderDimka coderDimka

Спасибо большое за этот гайд! А то уже волосы дыбом от отсутствия инфы)) Хотелос бы больше по этой теме. Например, что дальше. Т.е. я подключился к тестовому серверу стим. Как теперь мне синхронизировать двух и более игроков...

...
Tartal Tartal

Jusper, да, беда)

Tartal Tartal

Jusper, патронную ленту я всё же по-другому в итоге проведу (к герою, скорее всего). А затвор передёргивать не нужно, это не затвор, а рукоятка для левой руки, дробовик полностью автоматический)

Вот так он сейчас выглядит в ортографическом виде сбоку...

...
Jusper Jusper

У нас тут два экстерминатора нарисовалось)

Jusper Jusper

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

Jusper Jusper

Tartal,

Мне как раз нравился его резкий прямой скос, который ты в модели превратил в ручку гвоздемета.

Tartal Tartal

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

Jusper Jusper

Tartal,

Это, блин, нифига не скетч, а целый промоматериал :)

Valdram Valdram

Скриншоты из заявки для джема об участии в котором можно лишь жалеть со всякой точки зрения. Но сборка за такой срок представляет собой пусть и несовершенный, а именно Идейный пирог. Результат: https://valdram.itch.io/pipe-and-3-legs

...
alexprey alexprey

Хм, шотган миниган хорошш, представляю какое решето из анурана получится если сразу из четырех стволов пальнуть)

Tartal Tartal

Недавно набросал скетч автоматического дробовика. А сегодня доделал его модель (в процессе не слабо поменяв концепцию), но пока без каких-либо текстур и, тем более, анимаций.

Кратко об этом оружии:

Jusper Jusper

E.S., не там чисто на игру трехмерную был.
Я в рамках нее экспериментировал.

E.S. E.S.

Jusper, спасибо, я думал по шейдерам курс) Но я там и по шейдерам нашел парочку.

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

Конструкция with

Предисловие

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

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

Общий вид и применение

Конструкция имеет такой вид:

with (<имя объекта>) {<действие>};

или в сокращённой форме:

with <имя объекта> <действие>

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

Пример:

with (obj_ball)
{
x+=5
}

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

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

Примеры

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

Пример 1

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

obj_rocket destroy event (событие уничтожения образца объекта obj_rocket):

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

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

Пример 2

Сделаем все видимые объекты мячей в комнате невидимыми, а невидимые - наоборот.

with (obj_ball)
{
visible =! visible;
}

Пример 3

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

with (instance_create(15,20,obj_missle).id)
{
speed=10
direction=random(361)
}



Существует специальный тег код, читайте про txt2.
http://xgm.ru/p/help/txt2#h9

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