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