Понедельник, 18 Ноября 2024, 00:45

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Решаем задачи по Construct Classic [вопрос-ответ]
BESS55555Дата: Вторник, 03 Марта 2015, 06:34 | Сообщение # 2741
Three Dollar Bill Y'All$
Сейчас нет на сайте
Всем Ку! Вопрос следующий, как сделать после запуска приложения копию объекта, при этом при взаимодействии копии с копией или копий с оригиналом, должно происходить действие, тобишь, вопрос в том, как заведомо не зная имя копии, сделать так, чтобы всё это корректно работало, так как действия распространяются сразу на все копии и оригинал. happy

Nick_RimerДата: Вторник, 03 Марта 2015, 15:05 | Сообщение # 2742
заслуженный участник
Сейчас нет на сайте
BESS55555, после того, как задаются такие вопросы, хочется спросить "мальчик, ты сейчас с кем разговаривал?" biggrin
Ты можешь подбирать нужные тебе объекты при помощи Pick. А у "пика" есть куча разных вариантов.. ближайший, дальний, рандомный, удовлетворяющий условию..
Ты работаешь в каком констракте? В классике, или во втором? Сейчас не помню, как в первом, но во втором точно есть параметр Object.IID (Instance ID), который имеет номер от 0 до (Object.Count - 1) в зависимости от порядка, в котором создавались объекты на сцене или во время выполнения программы..
Есть ещё параметр UID, это уникальный номер объекта на сцене, не бывает объектов с одинаковым номером..


- Доброе утро, Агент Пи!
BESS55555Дата: Вторник, 03 Марта 2015, 19:51 | Сообщение # 2743
Three Dollar Bill Y'All$
Сейчас нет на сайте
Nick_Rimer,
Цитата Nick_Rimer ()
после того, как задаются такие вопросы, хочется спросить "мальчик, ты сейчас с кем разговаривал?"

biggrin
Цитата Nick_Rimer ()
ы работаешь в каком констракте? В классике, или во втором?

Во втором констракте)
Цитата Nick_Rimer ()
во втором точно есть параметр Object.IID (Instance ID), который имеет номер от 0 до (Object.Count - 1) в зависимости от порядка, в котором создавались объекты на сцене или во время выполнения программы..
Есть ещё параметр UID, это уникальный номер объекта на сцене, не бывает объектов с одинаковым номером..

Так, так, так, значит, присваивая уникальный номер (ID) объекту, с его копией не будет происходить того же, что происходит с оригиналом? Так, в целом ситуация вот какая, есть "шарики" они взрываются при взаимодействии с определённым действием, но у меня до селе получалось так, что если я активирую это событие на каком то из шарков, шарики начинают взрываться все и уходят в цикл и на компе можно жарить шкварки после таких действий, АйДи поможет исправить эту проблему?
P.S. Я понимаю, что задаю уже возможно наитупейшие вопросы, которые могут очень сильно раздражать, но заранее извиняйте, не я такой, армия таким сделала, идёт болезненный процесс реабилитации :D


Nick_RimerДата: Вторник, 03 Марта 2015, 21:34 | Сообщение # 2744
заслуженный участник
Сейчас нет на сайте
BESS55555, поправочка.. ты не присваиваешь ID, констракт это делает за тебя..
UID - уникальный номер для всех объектов вообще. IID - для копий конкретного объекта.
и то и другое получается объектом в порядке появления действующих лиц. в том числе зависит от того, в каком порядке ты создавал те или иные объекты вручную в редакторе.
выбирая конкретную копию по айди с его клоном ничего не произойдёт.
например, чтобы не плодить несколько объектов типа текст ты делаешь один и его клоны. выбираешь конкретную копию через IID и выводишь текст именно в него, в остальных этот текст не появится.

IID бывает очень удобно использовать для циклов. например, я как-то в проекте использовал dictionary для хранения значений одних и тех же фраз на разных языках. в поле настроек было 4 копии одного объекта SettingsText, я знал, что сверху вниз у них IID идут от 0 до 3.
я организовывал простейший цикл:

for "i" от 0 до 3
pick by comparsion -- условие(SettingsText.IID = loopindex("i")) -- SettingsText.SetText(читаем из dictionary фразу с номером loopindex("i"))
если бы я юзал 4 разных объекта Text1,2,3..N, такой красоты бы не получилось

как видишь, очень удобно бывает! если что не понятно вдруг, объясню smile

кстати, есть ещё такой цикл, как For each (выбираем объект), в своём варианте ordered он может проходить объекты или по возрастанию (ascending) или по убыванию (descending). как думаешь по возрастанию/убыванию чего? конечно же IID smile
а один из "пиков" называется pick Nth instance - подобрать энный экземпляр.. вместо N требуется указать номер IID

p.s. знаем, что такое армия, приходи в себя smile я как раз после неё занялся усиленно констрактом и своим обучением вообще.. понял, что надо ластами грести smile


- Доброе утро, Агент Пи!

Сообщение отредактировал Nick_Rimer - Вторник, 03 Марта 2015, 21:38
ToporДата: Среда, 04 Марта 2015, 20:51 | Сообщение # 2745
был не раз
Сейчас нет на сайте
Вопрос по Construct2. Есть два спрайта. Первый при старте уровня невидим, на него назначено два Behavior: 1) Fade In, 2) Fade out. Условие такое: по щелчку по спрайту 2 включается Fade In первого спрайта. По повторному щелчку по спрайту 2 (путем изменения значения переменной) включается Fade out первого спрайта. После окончания Fade out переменная обнуляется и первый спрайт становится невидимым. По идее по следующему щелчку на втором спрайте Fade In первого спрайта должен включиться опять, но этого не происходит. При последующих итерациях работает только Fade out. Пожалуйста, помогите кто чем может.
VickaДата: Среда, 04 Марта 2015, 22:18 | Сообщение # 2746
Another ART
Сейчас нет на сайте
Topor, нее) он по умолчанию не нулеет а уничтожается) Сама споткнулась аб этот камешек)
Посмотри что у тебя стоит в свойствах фейда
И нужно не стартить а рестартить)

картинка
собственно о чем я говорю




Сообщение отредактировал Vicka - Среда, 04 Марта 2015, 22:27
ToporДата: Среда, 04 Марта 2015, 22:56 | Сообщение # 2747
был не раз
Сейчас нет на сайте
Цитата Vicka ()
И нужно не стартить а рестартить)

Нет, так вообще Fade in не запускается. Вот скрин с событиями My WebPage
Думал по принципу выключателя 0/1 сделаю и получится, но ошибся. Только в чем?


Сообщение отредактировал Topor - Среда, 04 Марта 2015, 23:28
VirtualcreatureДата: Среда, 04 Марта 2015, 23:03 | Сообщение # 2748
постоянный участник
Сейчас нет на сайте
Topor, Вроде как фейд включается, но включается каждый тик, пока переменная равна какому-то из значений. Для того, чтобы он работал, когда переменная меняется - добавь суб-ивент "Trigger once" и перемести "Start fade" туда.
Записал видюшку, как пример, правда на Classic, но логика та же.


PS: Картинки тут принято прятать под спойлер.


Сообщение отредактировал Virtualcreature - Среда, 04 Марта 2015, 23:13
ToporДата: Среда, 04 Марта 2015, 23:25 | Сообщение # 2749
был не раз
Сейчас нет на сайте
Цитата Virtualcreature ()
Для того, чтобы он работал, когда переменная меняется - добавь суб-ивент "Trigger once" и перемести "Start fade" туда.

Сделал по твоему совету, но, к сожалению, не помогло. Первая итерация проходит нормально, а со второй запускается только Fade out со значением переменной 2. Но все равно спасибо.
VirtualcreatureДата: Среда, 04 Марта 2015, 23:42 | Сообщение # 2750
постоянный участник
Сейчас нет на сайте
Проверил в C2 - действительно, работает по-другому. Видимо, в C2 поведение "Fade" прекращает действие после "Fade out" и не считается законченным, если "Fade out"=0
Проблему можно решить просто перезапустив "Fade" сразу после запуска.
Вот видео из C2:


Сообщение отредактировал Virtualcreature - Четверг, 05 Марта 2015, 00:08
ToporДата: Четверг, 05 Марта 2015, 00:05 | Сообщение # 2751
был не раз
Сейчас нет на сайте
Цитата Virtualcreature ()
и не делая ничего с видимостью, он же и так абсолютно прозрачен?

В смысле? Ты про спрайт, а то в полночь уже плохо соображаю?
last2424Дата: Воскресенье, 08 Марта 2015, 12:29 | Сообщение # 2752
30 мл. блоков
Сейчас нет на сайте
Ребят, есть такая проблема. Сделал анимацию уничтожения. Не могу уничтожить объект через сравнение кадров.
Есть ли какие ещё способы уничтожения после проигрывании анимаций(анимация зависает после проигрыша если что)?


Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
YellowAfterlifeДата: Воскресенье, 08 Марта 2015, 13:24 | Сообщение # 2753
Сейчас нет на сайте
Цитата last2424 ()
Ребят, есть такая проблема. Сделал анимацию уничтожения. Не могу уничтожить объект через сравнение кадров.
Есть ли какие ещё способы уничтожения после проигрывании анимаций(анимация зависает после проигрыша если что)?

Для спрайтов есть событие "Animations - On Finished", что выполняется по завершению анимации.


last2424Дата: Понедельник, 09 Марта 2015, 13:00 | Сообщение # 2754
30 мл. блоков
Сейчас нет на сайте
YellowAfterlife, спасибо, у меня не было такого действия, потому действие совершалось только после другого действия. biggrin

Добавлено (09 марта 2015, 13:00)
---------------------------------------------
Пришла новая проблема которую я никак не могу решить.
Есть пузырь в который помещается объект.
При созданий пузырей бывает так.
1. Пузырь распределяется на все объекты как надо.
2. Пузыри встают на один объект.
При лопаний пузыря такая фигня.
1. Пузырь лопается нормально другие пузыри ничего не делают
2. После того как пузырь лупнул, другой пузырь переместился на место старого пузыря.

Как можно избавится в обоих случаях от 2-го пункта(Pick мне не помогает, либо я с ним неправильно работаю)?


Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
LasmelanДата: Понедельник, 09 Марта 2015, 18:01 | Сообщение # 2755
Construct 2 & Classic
Сейчас нет на сайте
Объясни подробнее, приведи скриншот событий.

Мое портфолио:
last2424Дата: Понедельник, 09 Марта 2015, 18:46 | Сообщение # 2756
30 мл. блоков
Сейчас нет на сайте
Lasmelan, смотри.
1. В определённый момент создаётся 2, 3 или 5 объектов, и для них создаются пузыри, их x, y равны x,y колец, но два пузыря иногда могут быть на одном кольце, а например когда лопнешь пузырь, задестроишь, другой пузырь с другого кольца перемещается на место того что мы лопнули. Надо избавится от вот этих проблем.


Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
LasmelanДата: Понедельник, 09 Марта 2015, 19:08 | Сообщение # 2757
Construct 2 & Classic
Сейчас нет на сайте


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


Мое портфолио:
last2424Дата: Понедельник, 09 Марта 2015, 19:13 | Сообщение # 2758
30 мл. блоков
Сейчас нет на сайте
Lasmelan, вот попробуй это проделать с 2-мя любыми объектами каждый в минимальном количестве 2 шт.


Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
LasmelanДата: Понедельник, 09 Марта 2015, 19:29 | Сообщение # 2759
Construct 2 & Classic
Сейчас нет на сайте
last2424, у меня была похожая проблема с полосками жизней для врагов. Решается она так: пузырю и кольцу присваивается переменная ID, и создаётся глобальная переменная GID. При создании кольца давать ID кольца значение GID, потом создавать пузырь и давать его ID значение GID. После этого прибавлять 1 к GID. Теперь сравниваем:
Для каждого кольца, для каждого пузыря, если ID кольца равен ID пузыря, поместить пузырь на кольцо.

Если с этим способом возникнут проблемы, убедительная просьба прислать скриншот.


Мое портфолио:
BESS55555Дата: Понедельник, 09 Марта 2015, 19:57 | Сообщение # 2760
Three Dollar Bill Y'All$
Сейчас нет на сайте
Nick_Rimer, Вот и снова я) Обращаюсь сразу к вам)
Дело следующее. не понимаю в чём причина не юзабельности. Есть Объект "Circle" у него есть объект-активатор на определённый набор действий "CircleActive", делаю переменную объекту "Circle" со значением 1, условие такое, что если эта переменная меньше 1, то "Circle" начинает взаимодействовать со своими копиями\клонами, но этого, блин, не происходит, причём если поставить событие trigger once и вписать в действие значение переменной 0, то они начинают взаимодействовать друг с другом, но без цепной реакции. Проще говоря, мне нужен детонатор "CircleActive", который бы взрывал одного из клонов "Circle", а в свою очередь взрывная волна от "Circle" должна взрывать других клонов"Circle" :d
P.S. фух, изложить это было куда труднее, чем я думал.))




Сообщение отредактировал BESS55555 - Понедельник, 09 Марта 2015, 19:58
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг