Форум: "Игры";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];
ВнизСценарий поведения объекта. Найти похожие ветки
← →
4ECHOK © (2005-09-07 09:01) [0]У меня такой вопрос будет к мастерам. Как бы Вы организовали следующий механизм.
Имеется объект-персонаж. Он умеет стоять, ходить, бегать, прыгать и т.д. Нужно задать сценарий его поведения, т.е. сначала он стоит, начиная с 1-й секунды он начинает идти и идет 3 секуды, затем начинает бежать в течении 2 секунд, потом прыгает и останавливается.
Встают вопросы:
1. Проверять начало/окончание процесса в каждый шаг симуляции - по-моему нерационально. Может есть другой выход ?
2. Как сопоставить команду на естественной языке и процедуру выполняющую данный процесс - писать парсер и скрипт-машину жуть как не хочется, а сопоставлять "команда-процедура" тоже нерационально. Что можно предложить ?
У меня есть свои мысли по этому поводу, но хотелось бы услышать и Ваше мнение. Спасибо за ответы.
P.S. Буду благодарен за ссылки на соответсвующую документацию или статьи.
---
То, что мы знаем, - ограниченно, а то, что не знаем, - бесконечно.
← →
Тульский © (2005-09-07 10:07) [1]Сценарий надо где-то хранить и как-то считывать. Так что, писать интерпретаор всё равно придется.
← →
4ECHOK © (2005-09-07 10:50) [2]Ну, хранение сценария - это отдельный разговор, в принципе легко решаемы с помощью XML сериализации (по крайней мере в моем проекте). Меня больше интересуют два вопроса [1]
---
То, что мы знаем, - ограниченно, а то, что не знаем, - бесконечно.
← →
Тульский © (2005-09-07 13:08) [3]А как бы ты сам выполнил такой сценарий?
← →
Тульский © (2005-09-07 13:11) [4]Т.е. поставь себя на место объекта
← →
Zer0 © (2005-09-07 13:36) [5]проще всего написать небольшой довесок к движку который записывает все команды, которые приходят к объекту и время (для каждой относительно предыдущей).
запускаешь игру. выбираешь нужного перса мышкой жмешь кнопку (Rec.) запись. указываешь мышой куда идти. после того как объект добрался до нужного места два раза кликаешь - объект бежит в заданном направлении. после этого жмешь какую-нибуть кнопку которая отвечает за прыжок. отжимаешь (Rec.)
все, команды записаны.
теперь можно воспроизводить путем тупого посылания команд (как-будто нажали кнопку мыши или клавиатуры) с учотом временных интервалов.
← →
Frost (Freak) (2005-09-07 13:48) [6]2 4ECHOK:
Т.е., насколько я понимаю, скриптового движка у тебя нет?
← →
4ECHOK © (2005-09-07 23:29) [7]Ой, ребята, завтра отвечу, что-то я сегодня недоперепил =))) Всем спокойной ночи.
---
То, что мы знаем, - ограниченно, а то, что не знаем, - бесконечно.
← →
4ECHOK © (2005-09-08 15:16) [8]2Zer0: Интересная мысль. Надо будет поэкспериментировать.
2Frost (Freak): нет, и надеюсь, что смогу обойтись без него.
Пока иду в следующем направлении. В уобъекта есть свойство-коллекция, в котором прописан список процессов. Также есть процедура, типа ProcessListUpdate, которая вызывается на каждом шагк симуляции и запускает/останавливает процессы согласно их времени начала и окончания.
Вот, пока остановился на этом.
Второй вопрос [1] так и остается открытым.
---
То, что мы знаем, - ограниченно, а то, что не знаем, - бесконечно.
← →
Ищущий © (2005-09-08 16:07) [9]2 4ECHOK:
Идея конечно бредовая, но: что если список процессов в твоей коллекции отключить от процедуры ProcessListUpdate, и привести к виду : 111111222222223333333311111112222222222
То есть на каждый шаг симуляции выполняется одно действие - флаг перебрасывается на другое и т.д.. Мини цикл.
← →
A22 © (2005-09-08 17:53) [10]сделать автомат, установить нужные состояние и переходы. если не хочется считать время - ну, вынеси в отдельный поток и "усыпляй" потом на нужное время после каждого перехода
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.013 c