Jusper Jusper

alexprey, не без особенностей.
Я бы не рекомендовал использовать тапкор для монетизации, но для кары пиратов - самое то.

alexprey alexprey

Jusper, о, а можно подробнее?

Jusper Jusper

alexprey, точно. Это наш же и был плагин, против сторонних левых скачивалок :)

alexprey alexprey

Но к сожалению приложение оказалось хакнутым со встроеным вирусом рекламы, показывает баннеры рекламные периодически поверх всех приложений. Так что пришлось снести. Опробовал только обучение и первые минут 15 монотонной ловли досок...

alexprey alexprey

Jusper, оу, ну это значительно лучше)

Jusper Jusper

alexprey,

Я просто не уверен, что 1.154 была последней на момент жизни версией.

alexprey alexprey

Jusper, о да, джостик реально для сверхразума. Хотя вроде почти везде такое используется, но тут все как то иначе.
Зы. Обучение прошел с 3 раза. На второй раз опять какой то баг с акулой был. Анимация у пнрса вклюяилась...

Jusper Jusper

alexprey,

Вот про это я напишу следующую статью.

Jusper Jusper

alexprey,

Там много недоработок, я уже все и не упомню.

ASH2 ASH2

Jusper, надо прожать несколько раз на WASD в произвольном порядке. Количество прожатий зависит от того, сколько ХП осталось у хэдкраба до нападения.

alexprey alexprey

О, а еще игра не паузилась в свернутом режиме :D

Jusper Jusper

alexprey,

Тереть экран пальцем вверх-вниз :)

alexprey alexprey

Jusper, а что делать то с акуло1 когда кусь случается?

Jusper Jusper

alexprey,

Там явная отсылка первой фразой :)

Jusper Jusper

alexprey,

Клевое багло. Никогда такого не ловили кстати. Персонаж в туторе так-то бессмертный :D

alexprey alexprey

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

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

Справка