Как собрать свойства от нескольких объектов?

Домой Форумы Для программистов Как собрать свойства от нескольких объектов?

В этой теме 14 ответов, 4 участника, последнее обновление Аватар sungreen 3 мес., 1 неделя назад.

Просмотр 15 сообщений - с 1 по 15 (из 15 всего)
  • Автор
    Сообщения
  • #14210
    Аватар
    Andrey
    Новичок

    Здравствуйте. Как можно собрать свойства от нескольких объектов одновремено для дальнейшей обработки этих свойств в пазлах логики?
    Пример: в сцене присутствуют некоторые объекты, но они спрятаны через пазл HIDE. Потом эти объекты будут вызваны и показаны через пазл Show, но это произойдет для каждого объекта независимо и в разное время. Каждый объект покажется при соблюдении своего условия. Например каждый будет отображен при нажатии отдельной кнопки. Нужно зафиксировать событие отображения всех элементов и далее обработать его пазлами логики. Задача: в сцене присутствуют, но спрятаны 4 части одного предмета. Пусть это будут 4 части яблока. Но они поочереди вызываются отдельными кнопками на которых прикручен пазл show. Как только отобразится последняя часть яблока, оно будет выглядеть как абсолютно целое. Последовательность заполнения дольками от 1-й до 4-й может быть любая. По окончании сборки нужно будет вывести аннотацию и сменить материал.
    Мне не понятно как создать переменную для этого сценария. Привязать переменную можно к положению объектов, к их видимости или к материалу. Или возможно есть другой способом обработать это в пазлах логики?
    Сбор свойств от одного объекта понятен и не составляет труда. Но когда их 4 и события происходят в разное время, тут я запутался. Подскажите пожалуйста направление мысли. Заранее благодарю.

    • Тема изменена 4 мес. назад пользователем Аватар Andrey.
    #14213
    Аватар
    sungreen
    Новичок

    >> Нужно зафиксировать событие отображения всех элементов и далее обработать его пазлами логики.
    >> Мне не понятно как создать переменную для этого сценария.

    если правильно понял:

    … это может быть переменная es = e0+2*e1+4*e2+8*e3, где e0..e3 это состояние отображения отдельного элемента (0 — не отображается, 1 — отображается) …
    … тогда es == 1+2+4+8 == 15 условие при котором отображаются все 4 элемента …
    или
    … можно создать словарь в котором хранить переменную состояния для каждого элемента и обрабатывать циклом …

    • Ответ изменён 4 мес. назад пользователем Аватар sungreen.
    #14215
    Mikhail Luzyanin
    Mikhail Luzyanin
    Разработчик

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

    Co-founder and lead graphics specialist at Soft8Soft.

    #14224
    Аватар
    Andrey
    Новичок

    Михаил, попробовал и так и так, но у меня видимо не хватает знаний для правильного завершения пазла. Для теста суммы я использовал аннотацию. В аннотации я вижу только NaN. Я так понял что это not a number. Можно попросить вас сделать простой рабочий пример кода на любых объектах, для понимания самого синтаксиса?

    #14227
    Аватар
    sungreen
    Новичок

    вот пример проекта, нужно нажимать 1,2,3,4
    или даже так 1 1 2 2 3 3 4 4 1 2 3 4 4 3 2 1 :good:
    пример

    #14234
    Аватар
    Andrey
    Новичок

    Спасибо за ход мысли по сложению чисел. Через этот алгоритм я сделал то чего добивался. А вот со словарями я так и не разобрался. Но это дело будущего. Спасибо да ваш ответ.

    #14241
    Аватар
    sungreen
    Новичок

    постарался упростить пример со словарем
    пример2

    INIT_SLICE и INVERT_SLICE для установки начального и инверсии статуса

    статус -1 (не отображать) и 1 (отображать), изменение статуса простым умножением на -1 (возможно когда-нибудь в Puzzles появятся логические переменные)

    далее создаем словарь и делаем в нем записи для 4 долек с привязкой к кнопкам (es1 к 1 … es4 к 4)

    далее скрываем все дольки, записанные в словарь (можно было бы скрыть в blender)

    далее следим за кликами и если 1 … 4, то находим в словаре дольку привязанную к кликнутой клавише и меняем у нее статус

    по ходу считаем сколько долек кликнуто простым суммированием статусов всех долек и если сумма равна 4 (4 дольки кликнуто, то есть имеют статус 1), то отображаем фрукт es

    • Ответ изменён 4 мес. назад пользователем Аватар sungreen.
    Вложения:
    Вы должны войти для просмотра вложений.
    #14251
    Аватар
    Andrey
    Новичок

    Так стало значительно понятнее. Спасибо, Sungreen!

    #14274
    Аватар
    Andrey
    Новичок

    Sungreen,здравствуйте. Разбираю ваш второй пример. Там нет пазлов в проекте. Они отмечены коричневым, как будь-то там ничего нет, но проект работает. Логика явно присутствует. Как такое могло случиться? Могу я с вами списаться вне форума- почта, телеграмм, вайбер?

    Вложения:
    Вы должны войти для просмотра вложений.
    #14277
    Аватар
    sungreen
    Новичок

    из архива распакованы файлы visual_logic.* (они есть в архиве и во вложении)?

    • Ответ изменён 3 мес., 3 нед. назад пользователем Аватар sungreen.
    #14284
    Аватар
    Andrey
    Новичок

    Sungreen, не могли бы Вы прислать мне на почту elektropochta108@gmail.com проект со вторым примером в котором открываются пазлы?

    #14285
    Аватар
    sungreen
    Новичок

    да, выслал …
    но к сожалению письмо заблокировано gmail со следующим пояснением

    Какие типы файлов блокируются в Gmail
    Письмо в Gmail может быть заблокировано по ряду причин. Чтобы предотвратить распространение вирусов, в Gmail запрещено передавать сообщения с исполняемыми файлами или подозрительными ссылками.

    вот ссылка нa ydisk https://yadi.sk/d/XGICRr7l-ZMXlA

    • Ответ изменён 3 мес., 3 нед. назад пользователем Аватар sungreen.
    #14287
    Yuri Kovelenov
    Yuri Kovelenov
    Разработчик

    Gmail запрещено передавать сообщения с исполняемыми файлами

    Да, Gmail не любит джаваскрипты, включая запакованные в архив.

    3D Verger, the CEO
    LinkedIn | FB | Twitter | VK | 新浪微博

    #14351
    Аватар
    Andrey
    Новичок

    Разобрался со словарями. Удобная, простая функция и свою задачу я решил. Спасибо за наводку, Sungreen. Но вашем последнем примере по ссылке на яндекс диск, так же как и в предыдущих- пазлы отсутствовали. Пазлов в App Manager нет и иконка не зелёная, а коричневая- не активная. Но тем ни менее опять вся логика присутствует и пример работает. Использую 2.14.0 версию. Как такое может быть?

    #14358
    Аватар
    sungreen
    Новичок

    >> так же как и в предыдущих- пазлы отсутствовали
    … они там есть …
    … на всякий случай оставил в архиве только пазлы (архив во вложении) …

    Вложения:
    Вы должны войти для просмотра вложений.
Просмотр 15 сообщений - с 1 по 15 (из 15 всего)

Для ответа в этой теме необходимо авторизоваться.