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


Глава Методика управления мульти­пликационными персонажами - часть 8


//Объявляем глобальный объект myCommand интерфейса

static AgentObjects.IAgentCtlUserInput myCommand;

 

private void axAgent1_Command(object sender,

      AxAgentObjects._AgentEvents_CommandEvent e)

{

    //Связываем объект myCommand с голосом пользователя:

    myCommand =

            (AgentObjects.IAgentCtlUserInput)(e.userInput);

    //После команды голосом "MoveToMouse"

    //персонаж перемещается на место курсора мыши:

    if (myCommand.Voice == "MoveToMouse")

    {

        myGenie.MoveTo(

            Convert.ToInt16(Cursor.Position.X),

            Convert.ToInt16(Cursor.Position.Y), 1000);

    }

 

    //После команды голосом "Merlin"

    //прежний персонаж скрывается, а новый появляется:

    if (myCommand.Voice == "Merlin")

    {

        //Скрыть прежний персонаж:

        myGenie.Hide(0);

        //От начала координат в верхнем левом углу Form1

        //задаем координаты "x,y" места нового персонажа:

        myMerlin.MoveTo(

            Convert.ToInt16(this.Location.X + 400),

            Convert.ToInt16(this.Location.Y - 130), 1000);

            //Показать новый персонаж в заданном месте:

        myMerlin.Show(0);

        //Чтобы персонаж произносил речь через динамики,

        //задаем ему следующие свойства:

        myAgentController = new AgentObjects.Agent();

        myAgentController.Connected = true;

        myAgentController.Characters.Load(

                                    "merlin", "merlin.acs");

        myMerlin =

           myAgentController.Characters.Character("merlin");

 

        //Новый персонаж произносит речь:

        mySpeech = "Я - Маг. Есть проблемы?";

        myMerlin.Speak(mySpeech, myObject);

    }

}

Поясним этот код. После нашей голосовой команды Hide текущий персонаж скрывается (без написания дополнительного кода в данном листинге). Но если мы хотим, чтобы после произнесения нами одного из заданных по умолчанию имен персонажей (Genie, Merlin, Peedy, Robby), этот озвученный новый персонаж не просто появился в верхнем левом углу экрана, а появился в заданном нами месте и после этого произнес речь, мы должны записать это в коде, что мы и сделали в этом листинге.




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



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