Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Объявление функций

Переопределение функций | Private, Protected | Выражения case | Встроенные операторы и их приоритет | Создание объектов | Отладчик сценариев | Определение значений по умолчанию с использованием блока defaultproperties | Динамические массивы | Итераторы динамических массивов | Доступные спецификации метаданных |


Читайте также:
  1. a. Дисметаболические и токсико-метаболические нарушения функций ЦНС
  2. Unit 6. Bidding - заявление, объявление
  3. Аппроксимация экспериментальных данных с помощью встроенных функций
  4. Блок 3 Использование функций
  5. Возрастные особенности психофизиологических функций
  6. Вычисления производных показательной функций и обратных тригонометрических функций
  7. Глава 17. Функции. Параметры процедур и функций

В языке UnrealScript вы можете объявлять новые функции и писать новые версии уже существующих (переписывать функции). Функции могут принимать один или несколько параметров (UnrealScript поддерживает переменные любых типов) и, опционально, могут возвращать значение. Хотя большинство функций пишутся непосредственно в UnrealScript, вы также можете объявлять функции, которые могут быть вызваны из UnrealScript, но реализованы на C++ и находятся в DLL. Технология Unreal поддерживает все возможные комбинации вызовов функций: из кода движка на C++ можно вызывать функции сценариев; из сценариев можно вызывать функций, реализованные на C++, и, естественно, из сценариев можно вызывать функции, реализованные в сценариях.

Ниже приведен пример определения простой функции. Эта функция в качестве параметра принимает вектор и возвращает число с плавающей точкой:

// Function to compute the size of a vector.

function float VectorSize(vector V)

{

return sqrt(V.X * V.X + V.Y * V.Y + V.Z * V.Z);

}

Объявление функции всегда начинается с ключевого слова function. За ним следуют тип возвращаемого значения функции (в данном случае float), имя функции, а затем список параметров функции в круглых скобках.

При вызове функции выполняется код, находящийся между фигурными скобками. Внутри функции можно объявлять локальные переменные (с использованием ключевого слова local) и разместить любой код UnrealScript. Необязательное ключевое слово return заставляет функцию немедленно вернуть значение.

В функции вы можете передавать любые типы UnrealScript (в том числе массивы), а функция может возвращать результат любого типа.

По умолчанию, любые локальные переменные, объявляемые в пределах функции, инициализируются нулем.

Вызов функции может быть рекурсивным. Например, следующая функция вычисляет факториал числа:

// Function to compute the factorial of a number.

function int Factorial(int Number)

{

if(Number <= 0)

return 1;

else

return Number * Factorial(Number - 1);

}

Некоторые функции UnrealScript вызываются движком при наступлении определенных событий. Например, когда актора коснулся другой актер, двигатель называет функцию Touch, сообщающую акторы, кто с ним соприкасается. При написании собственной функции Touch, вы можете выполнить необходимые действия, выполняемые при вызове Touch:

// Called when something touches this actor.

function Touch(actor Other)

{

Log("I was touched!")

Other.Message("You touched me!");

}

Вышеприведенная функция иллюстрирует несколько моментов. Во-первых, функция записывает сообщение в лог-файл, используя команду Log (которая эквивалентна командам языка Basic "print" и языка C "printf", за исключением некоторых правил форматирования). Во-вторых, она вызывает функцию "Message", находящуюся в другов акторе. Вызов функций, определенных в других объектах, это распространенное действие в языке UnrealScript (как и в других объектно-ориентированных языках, например в Java), поскольку оно обеспечивает простое средство для "общения" акторов между собой.


Дата добавления: 2015-11-14; просмотров: 48 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Преобразование ссылок на объекты и классы| Спецификаторы параметров функций

mybiblioteka.su - 2015-2024 год. (0.008 сек.)