Компьютерная графика, мультимедиа и игры на Visual C#


              

в предыдущей главе методике здесь


По изложенной в предыдущей главе методике здесь мы продолжим разработку методов управления персонажами при помощи голосовых команд. Напомним, что на листинге 48.2 в метод Form1_Load мы добавили новую голосовую команду в виде имени анимации (это имя имеется в окне со списком сomboBox2 для любого персонажа), чтобы видимый на экране персонаж произнес поясняющий текст и выполнил эту анимацию. К примеру, на листинге 48.2 для персонажа Genie (Джин) мы добавили имя анимации Announce в следующем коде:
    //Добавляем имя анимации, активизируемое голосом:
    mySpeech = "Announce";
    myGenie.Commands.Add(
    mySpeech, mySpeech, mySpeech, true, true);
Таким образом, чтобы после произнесения в микрофон имени анимации Announce персонаж выполнил эту анимацию, в панели Properties выбираем заголовок AxAgent1 (или щелкаем по элементу управления AxAgent1) и на вкладке Events дважды щелкаем по имени события Command. Появляется файл Form1.cs с шаблоном, который после записи нашего кода (согласно алгоритму) принимает такой вид.
Листинг 48.7. Метод, чтобы персонаж выполнял наши голосовые команды.
//Объявляем глобальный объект myCommand интерфейса
static AgentObjects.IAgentCtlUserInput myCommand;
private void axAgent1_Command(object sender,
      AxAgentObjects._AgentEvents_CommandEvent e)
{
      //Связываем объект myCommand с голосом пользователя:
      myCommand = (AgentObjects.IAgentCtlUserInput)
            (e.userInput);
      //Если выше при помощи метода Add мы добавили
      //имя анимации, например, Announce
      //в качестве голосовой команды:
      if (myCommand.Voice == "Announce")
      {
          //После голосовой команды останавливаем
          //текущую анимацию:
          myGenie.StopAll(myObject);
          //Перед анимацией персонаж произносит:
          mySpeech = "Охотно покажу эту анимацию.";
          myGenie.Speak(mySpeech, myObject);
          //Показывает анимацию, имя которой
          //мы произнесли в микрофон:

Содержание  Назад  Вперед