Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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.014 c
2-1140968384
DesertAlex
2006-02-26 18:39
2006.03.12
HTML-код в переменную


15-1140170580
Ega23
2006-02-17 13:03
2006.03.12
С Днём рождения! 17 февраля


2-1140689729
-=Dark=-
2006-02-23 13:15
2006.03.12
Ошибка при запуске Delphi


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


1-1139392424
ДенисНск
2006-02-08 12:53
2006.03.12
Очередь MSMQ





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский