Читайте также: |
|
Эти спецификаторы имеют тот же смысл, что и соответствующие ключевые слова для переменных.
Operator, PreOperator, PostOperator
Эти ключевые слова предназначены для объявления особого вида функций, называемых операторами (эквивалентных операторам C++). Компилятор UnrealScript знает обо всех встроенных операторах, таких как "+", "-", "==", "||" и т.д. Если не вдаваяться в подробности, то операторы UnrealScript похожи на операторы C++ и вы можете объявить новые операторы, как функции UnrealScript или встроенные функции, применяя ключевые слова operator, preoperator и postoperator.
Event
Ключевое слово event в UnrealScript имеет то же значение, что и как функция function. Однако, при экспорте заголовочного файла C++ с использованием =unreal -make -h, UnrealEd автоматически генерирует для "события" заглушку вызова из C++ в UnrealScript, что автоматически синхронизирует код на C++ с функциями UnrealScript и исключает возможность передачи ошибочных параметров в функции UnrealScript. Рассмотрим следующий участок кода UnrealScript.:
event Touch(Actor Other)
{... }
Создает код на C++ в EngineClasses.h, подобный следующему:
void eventTouch(class AActor* Other)
{
FName N("Touch",FNAME_Intrinsic);
struct {class AActor* Other; } Parms;
Parms.Other=Other;
ProcessEvent(N, &Parms);
}
Это позволяет вам вызвать функцию UnrealScript из C++ следующим образом:
AActor *SomeActor, *OtherActor;
SomeActor->eventTouch(OtherActor);
Const
Это спецификатор добавляется после объявления функции и может быть использован только в объявлении встроенной функции. Указывает, что функция должна быть экспортирована в заголовочный файл как 'const'. Пример использования: |
native function int doSomething(string myData) const;
Управляющие структуры
Язык UnrealScript поддерживает все стандартные операторы управления выполнением языков C, C++ и Java:
Структуры повторения
Циклы for
Циклы "For" позволяют выполнять цикл до тех пор, пока не будет выполнено определенное условие. Например:
// Example of "for" loop.
function ForExample()
{
local int i;
log("Demonstrating the for loop");
for(i=0; i<4; i++)
{
log("The value of i is " $ i);
}
log("Completed with i=" $ i);
}
В результате работы этого цикла мы получим вывод:
Demonstrating the for loop
The value of i is 0
The value of i is 1
The value of i is 2
The value of i is 3
Completed with i=4
В цикле for вы должны указать три выражения, разделенные точкой с запятой. Первое выражение для инициализации переменной в исходное значение. Второе выражение содержит условие, проверяемое перед выполнением каждой итерации цикла, если это выражение истинно, цикл выполняется, а если оно ложно, цикл завершается. Третье условие содержит выражение, увеличивающее счетчик цикла.
Хотя большинство выражений цикла "for" просто обновляют счетчик, вы также можете использовать циклы "for" для более расширенных операций, например, для обхода связанных списков, с помощью соответствующей инициализации исходного значения, условия прекращения и величины прироста.
Во всех управляющих структурах вы можете выполнять одну операцию без расстановки фигурных скобок, например:
for(i=0; i<4; i++)
log("The value of i is " $ i);
Или же вы можете выполнить несколько операций, заключив их в фигурные скобки, например:
for(i=0; i<4; i++)
{
log("The value of i is");
log(i);
}
Циклы do
Циклы "do" позволяют вам выполнять цикл пока указанное вами окончательное выражение истинно. Обратите внимание, что Unreal использует синтаксис do-until, который отличается от синтаксиса языков C и Java (использующих do-while).
// Example of "do" loop.
function DoExample()
{
local int i;
log("Demonstrating the do loop");
do
{
log("The value of i is " $ i);
i = i + 1;
} until(i == 4);
log("Completed with i=" $ i);
}
В результате работы этого цикла мы получим вывод:
Demonstrating the do loop
The value of i is 0
The value of i is 1
The value of i is 2
The value of i is 3
Completed with i=4
Циклы while
Циклы "while" позволяют вам выполнять цикл пока указанное вами начальное выражение истинно.
// Example of "while" loop.
function WhileExample()
{
local int i;
log("Demonstrating the while loop");
while(i < 4)
{
log("The value of i is " $ i);
i = i + 1;
}
log("Completed with i=" $ i);
}
В результате работы этого цикла мы получим вывод:
Demonstrating the do loop
The value of i is 0
The value of i is 1
The value of i is 2
The value of i is 3
Completed with i=4
Дата добавления: 2015-11-14; просмотров: 65 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Переопределение функций | | | Выражения case |