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

Private, Protected

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


Читайте также:
  1. Access to private and protected members of the containing type
  2. Article 444. Criminal offenses against internationally protected persons and institutions
  3. Protected Master person;

Эти спецификаторы имеют тот же смысл, что и соответствующие ключевые слова для переменных.

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

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