| 
	
		
		
			| Динамическое меню |  |  |  | 
| Vicka | Дата: Среда, 13 Мая 2015, 22:08 | Сообщение # 1 |  |   Another ART Сейчас нет на сайте | В общем я как всегда с головоломной задачкой) Придумала динамическое меню)
 Но как эту заразу реализовать не могу придумать)
 И так постановка задачи - имеем круг разделенный посекторно.
 Сектора создаются динамически и их может быть до.. много)
 К каждому из секторов привязан определенная группа иконок)
 Наполнение сектаров происходит динамически)
 Иконки не могут выходить за границы своего сектора
 и в итоговой позиции наезжать на собратьев)
 
 Для более наглядного понимания сути вопроса вот вам скрин
 
   
 и собственно сама флеш концепт идея)
 
 Ну от меня как всегда ПЛЮшки всем соучастникам)
 
 Добавлено (13 мая 2015, 22:08)
 ---------------------------------------------
 эй народ?)
 Это очень сложно или супер легко?)
 Яже не прошу сделать за меня)
 Дайте хотя-бы направление )
 
 
   |  |  |  |  |  | 
| Virtualcreature | Дата: Среда, 13 Мая 2015, 22:48 | Сообщение # 2 |  |   постоянный участник Сейчас нет на сайте | как насчет идеи "Сделать перемещение и коллизии на встроенном физическом движке"? как по мне - динамические менюшки это круто) |  |  |  |  |  | 
| Flow | Дата: Среда, 13 Мая 2015, 22:59 | Сообщение # 3 |  |   -=[.FSProduction.]=- Сейчас нет на сайте | Vicka, как вариант - юзать "Orbiter Behavior" c нулевой скоростью. А сектора определять углом. |  |  |  |  |  | 
| Zealot | Дата: Четверг, 14 Мая 2015, 00:07 | Сообщение # 4 |  |   был не раз Сейчас нет на сайте | Думаю, углом надо определять не только сектора, а и иконки в них. Значения можно хранить в массивах. Один массив, в котором элементы - секторы, а остальные массивы с элементами-иконками. Потому как в отдельных переменных хранить - жесть, думаю) Вам надо определить, как вы хотите упорядочивать сами сектора и иконки в них. Например, можно представить их в порядке часовой стрелки (с какого градуса отсчет - на ваш выбор также). Тогда элементы секторов всегда будут выстраиваться в ряды слева направо. Соответственно, каждому элементу отдельно будет прописана его позиция (если вы конечно не хотите смещать их в начало при отсутствии временном предыдущих иконок). Можно задать любой другой порядок. В упорядочивании собственно и главный вопрос, как я понимаю. Например, судя по вашей флешке, следующий ряд после первого занимает промежуточные места между ячейками 1 ряда (по углу наклона). Вообще, дуги секторов должны динамически высчитываться из расчета 360/N, где N - количество секторов. Так же определяются и ячейки в ряду. Если размер иконки перманентный, то нужно просто поделить дугу на кол-во ячеек в ряду (каждая - с полуотступами от других по бокам). Главное чтобы при росте кол-ва секторов в них оставалось достаточно места для размещения иконок, иначе придется менять размер иконок динамически, что не есть хорошо наверное. И кстати, Констракт 1 или 2? Для размера секторов и ячеек вряд ли подойдет функция Set Size, т.к. полезет растр. Пожалуй, лучше заменять на готовые спрайты другого размера. Из-за динамического кол-ва секторов угол ячеек (луча их сдвига) также будет непостоянным. Хотя, есть другой вариант: вы можете расписать окружность на "гарантированные" места для ячеек, вне зависимости от того, к какому сектору они принадлежат. Единственная проблема тогда - если размеры иконок и границ секторов не динамические, то придется задать ширину между ячейками эквивалентную ширине между секторами. Вы знаете, что-то я увлекся видимо. Расскажите пожалуйста, что можно делать с кругом, а что нельзя. И что в нем меняется (и если да, то каким образом), а что - нет. А то я вам тут лапши на уши понавешаю гипотетической... Если так не удобно, то я могу попробовать составить список вопросв, прежде чем давать ответы на всё подряд) 
 Добавлено (14 мая 2015, 00:07)
 ---------------------------------------------
 Пока не заснул, вопрос: меню - на отдельном лэйауте или просто на верхнем слое? А еще скорее всего вам нужно будет ввести определенное количество глобальных переменных. А именно: плотность (отвечает за близость секторов/ячеек друг к другу), кратность (коэффициент размера секторов, ячеек, направляющих для перемещения, градусов и т.д. из расчета кол-ва секторов и кол-ва ячеек в каждом). Но это всё уже детали.
 
 
 Добавлено модератором
 ---------------------------------------------
 Construct 2. Вика забыла это указать, я вписал в шапку самостоятельно. --- Nick_Rimer
 
 
 Сообщение отредактировал Zealot - Среда, 13 Мая 2015, 23:38 |  |  |  |  |  | 
| Vicka | Дата: Четверг, 14 Мая 2015, 09:21 | Сообщение # 5 |  |   Another ART Сейчас нет на сайте | Цитата Zealot (  ) Думаю, углом надо определять не только сектора, а и иконки в них. Значения можно хранить в массивах. Один массив, в котором элементы - секторы, а остальные массивы с элементами-иконками. Потому как в отдельных переменных хранить - жесть, думаю) Вам надо определить, как вы хотите упорядочивать сами сектора и иконки в них. Например, можно представить их в порядке часовой стрелки (с какого градуса отсчет - на ваш выбор также). Тогда элементы секторов всегда будут выстраиваться в ряды слева направо. Соответственно, каждому элементу отдельно будет прописана его позиция (если вы конечно не хотите смещать их в начало при отсутствии временном предыдущих иконок). Можно задать любой другой порядок. В упорядочивании собственно и главный вопрос, как я понимаю. Например, судя по вашей флешке, следующий ряд после первого занимает промежуточные места между ячейками 1 ряда (по углу наклона). Вообще, дуги секторов должны динамически высчитываться из расчета 360/N, где N - количество секторов. Так же определяются и ячейки в ряду. Если размер иконки перманентный, то нужно просто поделить дугу на кол-во ячеек в ряду (каждая - с полуотступами от других по бокам). Главное чтобы при росте кол-ва секторов в них оставалось достаточно места для размещения иконок, иначе придется менять размер иконок динамически, что не есть хорошо наверное. И кстати, Констракт 1 или 2? Для размера секторов и ячеек вряд ли подойдет функция Set Size, т.к. полезет растр. Пожалуй, лучше заменять на готовые спрайты другого размера. Из-за динамического кол-ва секторов угол ячеек (луча их сдвига) также будет непостоянным. Хотя, есть другой вариант: вы можете расписать окружность на "гарантированные" места для ячеек, вне зависимости от того, к какому сектору они принадлежат. Единственная проблема тогда - если размеры иконок и границ секторов не динамические, то придется задать ширину между ячейками эквивалентную ширине между секторами. Вы знаете, что-то я увлекся видимо. Расскажите пожалуйста, что можно делать с кругом, а что нельзя. И что в нем меняется (и если да, то каким образом), а что - нет. А то я вам тут лапши на уши понавешаю гипотетической... Если так не удобно, то я могу попробовать составить список вопросв, прежде чем давать ответы на всё подряд) 
 Добавлено (14 мая 2015, 00:07)
 ---------------------------------------------
 Пока не заснул, вопрос: меню - на отдельном лэйауте или просто на верхнем слое? А еще скорее всего вам нужно будет ввести определенное количество глобальных переменных. А именно: плотность (отвечает за близость секторов/ячеек друг к другу), кратность (коэффициент размера секторов, ячеек, направляющих для перемещения, градусов и т.д. из расчета кол-ва секторов и кол-ва ячеек в каждом). Но это всё уже детали.
 оу. даже не предполагала что все так заморочено.
 Извините что потратила ваше время)
 Думаю откажусь от этой идеи)
 
 Nick закрой тему плиз)
 
 
 Добавлено модератором
 ---------------------------------------------
 Закрывать подобные темы пока не планируется. --- Nick_Rimer
 
 
   
 
 Сообщение отредактировал Vicka - Четверг, 14 Мая 2015, 09:22 |  |  |  |  |  
 |