Mariya Mariya

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

Wings' might Wings' might

Всем привет)
За неделю в игру было добавлено меню настроек, переделана старая локация, добавлены новые враги и повышена производительности

alexprey alexprey

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

Dreaman Dreaman

Всем привет!
Для проекта "Mental State" разработано новое устройство, которое уже полностью функционирует внутри игрового мира. Оно носит название "Репульсивер". Совместно с очередными большими воротами это устройство образует новую головоломку...

...
Mariya Mariya

Всем привет!
На этой неделе мы научили Сырну летать!

Tartal Tartal

alexprey, кастомизации - создание внешности персонажа? Я всегда любил это, но не думаю, что это будет к месту в мясном шутере)
EfimovMax, да, есть немного)

Tartal Tartal

Jusper, точно не помню, уже как полгода точно) Я вроде в Дискорде немного обсуждал эту тему. Пока немножко попробовал движок - мне очень нравится. Ну, в конце концов, он идеально подходит под жанры, с которыми я хочу работать...

alexprey alexprey

Первая тема крутая очень!

EfimovMax EfimovMax

MyPixel Games, напиши мне в Вк https://vk.com/efimovmax
Я работал с вокселями, смогу помочь.

alexprey alexprey

MyPixel Games, где есть скрын с видом сетки? По идее же легко конвертится в простой меш группировкой + генерацией текстурной карты без фильтрации

MyPixel Games MyPixel Games

alexprey, посмотрите какая там полигональная сетка. Мы сначала наделали моделек, а потом проверили и нас схватил ужас от количества полигонов и невозможности урезать это самое количество. Как-то переживем...

alexprey alexprey

MyPixel Games, хм, такие простые модельки, странно, что это приносит проблемы с производительность

MyPixel Games MyPixel Games

Jusper, антураж + проще в производстве. Конечно, с оптимизацией все не так хорошо. Точнее, совсем не хорошо.

Tartal Tartal

Как раз то, что нужно. Большое спасибо за собранную информацию)

Jusper Jusper

EfimovMax, точно, воксели :)

EfimovMax EfimovMax

Jusper, под лоуполи+пиксели ты имеешь ввиду воксели?)

Jusper Jusper

У меня возник вопрос)
Почему вы выбрали именно такой (лоуполи + пиксели) визуальный стиль?

EfimovMax EfimovMax

Tartal, второй на обезьяну похож, а третий на михалыча с завода :)
Мне нравится первый вариант

Логотип проекта 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)
}

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