Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.12;
Скачать: CL | DM;

Вниз

Сценарий поведения объекта.   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.087 c
15-1140287806
lookin
2006-02-18 21:36
2006.03.12
Высоцкий


2-1140594863
Wel
2006-02-22 10:54
2006.03.12
Как правильно осуществить переход.


2-1140616905
veb
2006-02-22 17:01
2006.03.12
Первая попытка подключения к инернету


2-1140614072
nap<>
2006-02-22 16:14
2006.03.12
SQL


4-1134992931
eugenemail1970
2005-12-19 14:48
2006.03.12
Как считать данные с СОМ-порта номер 10 и выше?