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


         

Персонаж произносит текст из окна


Листинг 49.3. Метод для кнопки.
private void button1_Click(object sender, EventArgs e)
{
    // Персонаж произносит текст из окна TextBox
    //при условии:
    //Если окно TextBox не заполнено:
    if (textBox1.TextLength == 0)
    {
        mySpeech =
        "Запишите, пожалуйста, в окно слова, " +
        "которые я должен произнести.";
        myGenie.Speak(mySpeech, myObject);
    }
    else
    //иначе, если окно TextBox заполнено,
    //персонаж произносит слова из этого TextBox:
    {
        mySpeech = textBox1.Text;
        myGenie.Speak(mySpeech, myObject);
    }
}
Записываем код, чтобы после нашего щелчка мышью (или после нажатий двух клавиш, например, для первого переключателя: Alt+1) по первому переключателю с именем анимации Announce, персонаж:
произносил речь;
показывал выбранную нами анимацию.
Для этого дважды щелкаем первый переключатель в режиме редактирования (или в панели Properties с заголовком radioButton1 на вкладке Events дважды щелкаем по имени события CheckedChanged).
Появляется файл Form1.cs с шаблоном (метода radioButton1_CheckedChanged), который после записи нашего кода принимает такой вид.
Листинг 49.4. Метод для переключателя.
private void radioButton1_CheckedChanged(
object sender, EventArgs e)
{
      //Останавливаем все предыдущие действия персонажа:
      myGenie.StopAll(myObject);
      //Перед анимацией персонаж произносит фразу:
      mySpeech = "Охотно выполняю эту анимацию.";
      myGenie.Speak(mySpeech, myObject);
      //Показываем выбранную нами анимацию персонажа:
      myGenie.Play("Announce");
      //Показываем анимацию персонажа в покое:
      myGenie.Play("RestPose");
}
Аналогично последовательно дважды щелкаем по каждому последующему переключателю в режиме редактирования и в каждый шаблон метода записываем такой же (как на предыдущем листинге) код, только строку с именем предыдущей анимации заменяем на соответствующую строку из следующих девяти строк (по числу оставшихся переключателей) с именами новой анимации:
        myGenie.Play("Congratulate");
        myGenie.Play("Congratulate_2");
        myGenie.Play("DontRecognize");
        myGenie.Play("Explain");
           myGenie.Play("GetAttention");
           myGenie.Play("Suggest");
        myGenie.Play("Surprised");
        myGenie.Play("Wave");
        myGenie.Play("Write");
Аналогично можно записать код для решения любой подобной задачи согласно разработанному нами алгоритму.

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