Пятница, 22 Ноября 2024, 00:48

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
[Решено] For each&timer - или "Индивидуальное поведение?"
CupuycДата: Среда, 06 Ноября 2013, 06:07 | Сообщение # 1
участник
Сейчас нет на сайте
Доброго времени суток. Возникла проблема, просьба подсказать.

Начну с примера - ForEach.cap(24кб)
Это исходник, в нём есть объект в виде белого квадрата. Несколько экземпляров.
По плану: У квадрата два состояния. Он либо движется возвратно-поступательным вверх и вниз, либо "покачивается" меняя угол. Ничего другого делать он не должен.

На деле: Если запустить исходник, можно обнаружить что таких объектов три. Как мне и нужно, конечно, мне не нужен один объект, а нужно несколько независимых. Но эти объекты по неизвестной мне причине "сбиваются". Останавливаются.
Если перетащить курсором по одному квадраты на красный прямоугольник с надписью "Destroy", можно убрать два из трех квадратов.
И, наконец, если подождать немного, то можно убедиться - "выживший" действует в соответствии с планом и не сбивается.
Ведет себя так, как должны вести себя все квадраты.

Что я пытаюсь делать:
По запуску - всем квадратам задается таймер с почти случайным временем.
Дальше. Поведение задается при помощи "For each". Каждый раз выбирая для объекта случайное значение приватной переменной. И уже в подсобытиях внутри "For Each" выдается команда на включение движения, либо покачивания - соответственно переменной.

Мне бы хотелось знать, что я делаю не так, если хочу, чтобы такие объекты действовали индивидуально с различными временными промежутками?

Зачем? У меня есть симпатичный проект где идёт работа над более-менее интересным ИИ. Вид как в платформер. Мы наблюдаем за происходящим на экране. Вот и всё. Никакого участия со стороны игрока. Всё, да и не всё. ИИ умеет строить, собирать ресурсы перенося оные. Постройки определяют дальнейшее поведение ИИ координируя его. Забавно.
Всё бы хорошо, но вдруг заметил что одни субъекты, даже будучи занятыми совсем другим, даже не соответствуя условия команды на "прогулку" - останавливаются, чтобы не делали и приступают к прогулке. Довольно резко. Выявил что вслед за другим субъектом. Субъект пример ведет себя нормально, не считая пагубного воздействия на остальных. Негодяй. Может еще пагубнее влияет? Заметно только на примере прогулок. Кажется остальное даже нормально.

Вот то самое сатанинское место в коде, кстати: Клац.


Что я пробовал? Многое. Менял архитектуру событий, заменял компоненты. Например таймер заменял переменной.
For Each заменял схемой событий которые должны работать как он, по идее - массив с UID каждого субъекта и в цикле пробегаемся по всем выполняя заданное поведение. Так и работает точно так же biggrin
Конечно прошустрил с поиском и просто глазами по событиям. Ничего такого, подозрительные участки отключал для проверки - не влияют ли как.
Конечно гуглил, полазил везде, на инглише включительно. И как дурак ничего не нашел. Вот я и здесь.
Как же мне без случайно бродящих человечков то жить. Вдруг такой же косяк будет с чем-то другим, более необходимым? Трагедия вселенского масштаба, друзья мои. x) На другом движке мне, балбесу, опыта не хватит что-то такое же делать. На этом то, судя по ситуации, видимо не хватает.

Заранее спасибо, как минимум за прочтение.

up: Пофиксил ссыль.


Законопослушно-добрый паладин. Блог ЭпикДаст VK
Stone Sour - Through Glass


Сообщение отредактировал Cupuyc - Среда, 06 Ноября 2013, 16:12
xxxShadeДата: Среда, 06 Ноября 2013, 15:01 | Сообщение # 2
почетный гость
Сейчас нет на сайте
Исправленный пример: ForEach_fix_S.cap
CupuycДата: Среда, 06 Ноября 2013, 16:06 | Сообщение # 3
участник
Сейчас нет на сайте
Цитата xxxShade ()
Исправленный пример: ForEach_fix_S.cap

Сделал как Вы. Убрал else, вытащил всё из под For Each. Не помогло. Полазил по коду - сделал пару заплаток с UID в тех местах что раньше подозрительны мне были. Внезапно помогло. Сделал как раньше, но с заплатками - глючит. Проблема и в том, и в другом была).
Так что - спасибо большое, баг себя, похоже, исчерпал и больше никак не проявляет. Пять раз проверял - человечки ходят, строят соответственно плану и индивидуально).
А я тут, балбес, прикидывал на какой движок можно перенести проект, чтобы не бросать).


Законопослушно-добрый паладин. Блог ЭпикДаст VK
Stone Sour - Through Glass
  • Страница 1 из 1
  • 1
Поиск:

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