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


Глава Вывод на экран выступлений и анимаций всех персонажей - часть 10


По изложенной в предыдущей главе методике здесь мы продолжим разработку методов управления персонажами при помощи голосовых команд. Напомним, что на листинге 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);

          //Показывает анимацию, имя которой

          //мы произнесли в микрофон:




Начало  Назад  Вперед



Книжный магазин