Пятница, 19 Апреля 2024, 10:31

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Последовательное выполнение действий
Последовательное выполнение действий
lakorisДата: Понедельник, 23 Июня 2014, 00:35 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
На вход поступает массив с несколькими координатами(точками), нужно переместить объект по всем этим точкам(по очереди, как они находятся в массиве).
Суть конкурса в том, что нельзя начинать перемещение на вторую точку, если объект не дошел до первой. Пример:

Код
arr[0] = (1, 2, 5); arr[1] = (4, 2, 5);

Сначала движемся в (1, 2, 5), после этого в (4, 2, 5);

Код
   
foreach (string step in arr)
              {
while(newPos != step) newPos = step;
}


Тут я привел примерный код, как я понимаю выполнение этой последовательности.
Суть в том, что for не должен переходить к след. элементу, пока объект не дошел до координат этого элемента.
Двигается объект таким образом: Если newPos != (0, 0, 0) - двигаем в указанные координаты. Доехали - newPos = 0, 0, 0.

Возможно что-то я объяснил совсем непонятно. Если что - спрашивайте.
Давайте обсуждать данный вопрос.
Спасибо smile


Сообщение отредактировал lakoris - Понедельник, 23 Июня 2014, 00:35
SaiteiДата: Понедельник, 23 Июня 2014, 00:48 | Сообщение # 2
старожил
Сейчас нет на сайте
lakoris, псевдокод:
Код
если(иду != true)
{
------если(массив не пустой)
------{
------------иду = true;
------}
}
иначе
{
------иду к(массив[индекс последнего элемента]);
------если(массив[индекс последнего элемента].x == x и массив[индекс последнего элемента].y == y и массив[индекс последнего элемента].z == z)
------{
------------иду = false;
------------удалить массив[индекс последнего элемента];
------}
}


Сообщение отредактировал Saitei - Понедельник, 23 Июня 2014, 01:03
morgloddddДата: Понедельник, 23 Июня 2014, 00:51 | Сообщение # 3
участник
Сейчас нет на сайте
Чего тут обсуждать?

Простейшая "покадровая" анимация или перемещение по графу

есть значение X - это позиция на прямой времени анимации.
на этой же прямой отмечены точки (кадры) Yn.
значит Y0 - это начало анимации, а Y? это конец (первый и последний кадр).
к X прибавляется delta времени каждый кадр
дальше берем отрезок прямой, на котором находится X, и представив его ( Yn X Yn+1 ) в виде процентов, легко вычисляем нужные координаты.

Не в виде кода, чтобы ТС начал учиться, а не только спрашивать готовый код.


Сообщение отредактировал morglodddd - Понедельник, 23 Июня 2014, 00:51
lakorisДата: Понедельник, 23 Июня 2014, 02:22 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Saitei, выглядит интересно! Через час вернусь и попробую такой вариант! Спасибо за столь быстрый ответ smile

Добавлено (23.06.2014, 00:53)
---------------------------------------------
morglodddd, спасибо! Уже год как готовый код не прошу tongue

Добавлено (23.06.2014, 02:22)
---------------------------------------------
Saitei, Спасибо, помогло.
Вопрос закрыт smile

SaiteiДата: Понедельник, 23 Июня 2014, 03:07 | Сообщение # 5
старожил
Сейчас нет на сайте
lakoris, рад, что помог)
Успехов
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Последовательное выполнение действий
  • Страница 1 из 1
  • 1
Поиск:

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