• Добро пожаловать на Quest3D - Русскоязычное сообщество.
 

Новости:

Форум Quest3D восстановлен!

Главное меню

Проверка условия внутри цикла

Автор Jon, 28 июня 2011, 20:58:05

« назад - далее »

Jon

Как проверить выполнение условия в цикле, например навёл курсор на один из объектов созданных при помощи цикла и он исчезает или меняет цвет, остальные остаются неизменными пока до них  не дотронешься.
В примере один из объектов не видно, т.к. его рендер в цикле отключен – это сделано в ручную , а нужно чтоб автоматом, при условии.
Возможно я двигаюсь в неправильном направлении, и хотелось бы почитать что скажут и на какую мысль наведут , более образованные люди.

DFM

например можно так, но в таком варианте использовать инерцию для плавного изменения не получится

Ruslan


Jon

Спасибо за примеры! Я подправил один из них и столкнулся с ещё одним затруднением.
Есть пять бочек, при наведении на одну из них , та исчезает и на её месте появляется кубик (осколок), который отлетает в сторону и исчезает. Для анимации кубиков  я использую таймер, который является общим для всех объектов.
Как сделать чтобы при наведении на другие бочки , таймер для их них кубиков начинался с начала?  Как правильно подсоединить таймер?

Jon


Jon

Всё тки сам я ничего не могу понять. Зациклился на этих таймерах, может быть в играх делается по другому?  Взрывы бочек, анимация вражеских юнитов, эти объекты все одинаковые, я так понимаю создаются они именно циклами, но как заставить каждый объект делать анимацию только для себя?
Как в цикле создать несколько таймеров и записать их в массив ,чтобы при определённом цикле можно было запустить , как бы свой таймер для каждого созданного циклом объекта?
И вообще я правильно рассуждаю о динамических объектах в циклах?

redis

Всем привет, у меня такой вопрос как в цикле реализовать канал FastCollisionResponce, тоесть как в цикл засунуть обьекты имещию настройки поиска пути ? В исходных каналах квеста есть пример с поиском пути реализованном на ФастКоллизионРеспонц, как этот пример в цикл засунуть ?

dfx

#7
Jon
Как реализаван менеджер объектов? Если используешь ОО, то там все просто реализуется. Рекомендую посмотреть, как сделано в квестовом примере с остеройдами.
В любом случае смысл следующий -
Создаешь дополнительные значения в интерфейсе объекта или в таблице.
1. Текущее значение анимации.
2. Целевое значение анимации.
З. Скорость анимации
4. Количество кадров в анимации.
Эта группа значений должна быть уникальной для каждого объекта. Далее по условиям наращиваешь или уменьшаешь текущее значение.
Например, если целевое значение отличается от текущего, значит проверяем оно больше или меньше. Если больше, то к текущему прибавляем дельту, умножнное на скорость и тиккаунт. Таким образом, каждый раз мы увиличиваем текущее значение, пока оно не сравняется с целевым.
Я обычно использовал интервал 0.0-1.0, а потом домножал это значение на количество кадров в анимации.
Тут есть еще один бонус. В случае, когда целевое значение менше текущего, то уменьшая его также плавно, можно проиграть анимацию в обратном направлении. А можно просто присваивать целевое значение, тогда получится резкий возврат в начало таймлайна.

Изменил пример, но так как я не использовал анимированных объектов, а дергал позицию и размер, то параметр количества кадров не понадобился. А так же ничего не делал с проверкой наведения.

Jon

Нифига себе примерчик, круто!
dfx - спасибо за этот шедевр!
Буду разбираться!

Ruslan