Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Руководство по редактированию ИИ в игре General....doc
Скачиваний:
27
Добавлен:
23.04.2019
Размер:
1.24 Mб
Скачать
  1. Создание алгоритма выбора.

Часто бывают случаи, когда нужно проверить одну переменную и в зависимости от ее значения выбрать одно из действий. Если нужно выбрать одно из двух действий, то всё просто. Вы создаете скрипт, в условии которого проверяете значение, в закладке «Actions if true» задаете одни действия, а в закладке «Actions if false» задаёте другие действия. Но как быть, если нужно выбрать одно из 3-х или более действий? Это решается просто.

Задача. Пусть требуется проверить значение переменной CHK (которая может принимать значения от 1 до 4) и выбрать одно из 4 действий в зависимости от ее значения. Для этого, создаем скрипт с именем «Check 1». Задаем в нем проверку «CHK=1?», в закладке «Actions if true» задаем действия, которые необходимо выполнить, если CHK=1, в закладке «Actions if false» задаем только одно действие «Run Subroutine» (раздел Scripting->Script). Это действие обозначает запуск подпрограммы. С его помощью запускаем скрипт «Check 2». Далее, создаем скрипт «Check 2», переключаем его в режим подпрограммы (галочка напротив надписи Subroutine), ставим условие «CHK=2?», в закладке «Actions if true» задаем действия, которые необходимо выполнить, если CHK=2, в закладке «Actions if false» опять задаем «Run Subroutine». На этот раз с помощью «Run Subroutine» надо запустить скрипт «Check 3». Далее, создаем наш последний скрипт «Check 3» с проверкой «CHK=3?», в закладке «Actions if true» задаем действия, которые необходимо выполнить, если CHK=3, в закладке «Actions if false» задаем действия, которые необходимо выполнить, если CHK=4. На этом всё. Задача решена.

С помощью этого приема можно выполнять любые проверки (не только переменных) и выбирать одно из действий. Число действий не ограничено. С помощью «Run Subroutine» можно построить цепочку скриптов любой длины.

  1. Создание генератора случайных чисел.

Часто бывают случаи, когда надо произвести какое-либо случайное действие. Но генератора случайних чисел нет. Приходится лепить его из того, что есть. В скриптах есть такое действие «Frame countdown timer – set random» из раздела «Scripting->Timers». Оно запускает таймер на случайное число кадров. Вот на нем-то всё и строится. Нужно взять таймер, запустить его на случайное число кадров, а потом посчитать, сколько кадров прошло с момента его запуска. Получится случайное число.

Один из вариантов реализации такой. В одном скрипте запустить таймер на случайное число кадров. Одновременно с этим, присвоить какой-либо переменной значение 0. Далее, понадобится второй скрипт, который будет запускаться в каждом кадре и проверять, а не истекло ли время в таймере. Если не истекло, то к нашей переменной надо прибавить 1. Если истекло, то генерация закончена. Случайное значение находится в нашей переменной.

Второй вариант реализации – запустить несколько таймеров на случайное время, и посмотреть, в каком из них время истечет быстрее. Имя первого завершившего работу таймера будет случайным значением.

Далее можно запустить алгоритм выбора (описанный выше) и выбрать одно из действий в зависимости от сгенерированного случайного значения.