As funções no UnrealScript são blocos de código definidos dentro das classes. Em outras linguagens de programação orientado a objetos essas funções são conhecidas como Métodos. A definição de uma função no UnrealScript tem a seguinte forma:
function tipoRetorno nomeFuncao(tipoParam1 param1, tipoParam2 param2 ... )
O tipo de retorno e os parâmetros são opcionais. Para retornar um valor da função use o comando "return".
As funções podem ser sobrescritas (override) em subclasses. Por exemplo, na classe Actor existe uma função chamada PostBeginPlay() que é chamada quando um Actor for iniciar sua participação no jogo. Se criarmos uma subclasse de Actor podemos escrever uma nova versão para a função PostBeginPlay() em nossa subclasse. Nesses casos é recomendado que na nova função seja chamado a versão original da Classe Pai, para isso use a palavra Super dessa forma:
Super.PostBeginPlay();
O UnrealScript não suporta a sobrecarga (overload) de funções. Sendo assim, não é possível criar na mesma classe funções com o mesmo nome mudando apenas os tipos de parâmetros.
Na classe Actor existem diversas funções que são definidas com a palavra chave event ao invés de function. A única diferença é que as funções definidas com event podem ser chamadas a partir de código em C++.
As funções podem ter parâmetros de saída. Isto é útil quando uma função precisa retornar mais de um valor. Para usar parâmetros de saída utilize a palavra chave out na frente do parâmetro.
É possível atribuir valores padrões para parâmetros com o uso da palavra chave optional.
Existem diversas funções de propósitos gerais já definidas em UnrealScript como funções para Log e funções matemáticas.
Exemplo de código:
function tipoRetorno nomeFuncao(tipoParam1 param1, tipoParam2 param2 ... )
O tipo de retorno e os parâmetros são opcionais. Para retornar um valor da função use o comando "return".
As funções podem ser sobrescritas (override) em subclasses. Por exemplo, na classe Actor existe uma função chamada PostBeginPlay() que é chamada quando um Actor for iniciar sua participação no jogo. Se criarmos uma subclasse de Actor podemos escrever uma nova versão para a função PostBeginPlay() em nossa subclasse. Nesses casos é recomendado que na nova função seja chamado a versão original da Classe Pai, para isso use a palavra Super dessa forma:
Super.PostBeginPlay();
O UnrealScript não suporta a sobrecarga (overload) de funções. Sendo assim, não é possível criar na mesma classe funções com o mesmo nome mudando apenas os tipos de parâmetros.
Na classe Actor existem diversas funções que são definidas com a palavra chave event ao invés de function. A única diferença é que as funções definidas com event podem ser chamadas a partir de código em C++.
As funções podem ter parâmetros de saída. Isto é útil quando uma função precisa retornar mais de um valor. Para usar parâmetros de saída utilize a palavra chave out na frente do parâmetro.
É possível atribuir valores padrões para parâmetros com o uso da palavra chave optional.
Existem diversas funções de propósitos gerais já definidas em UnrealScript como funções para Log e funções matemáticas.
Exemplo de código:
class TesteFuncoes extends Actor;
event PostBeginPlay()
{
local float dano;
local int num1, num2;
Super.PostBeginPlay();
dano = calculaDanoRecebido(125, 15 );
`log( "Dano Recebido: " $ dano);
geraDoisRandom(num1, num2);
`log( "1º Numero Gerado : " $ num1);
`log( "2º Numero Gerado : " $ num2);
}
function float calculaDanoRecebido(float forcaAtaque, int nivelDefesa)
{
return (forcaAtaque * 10) / nivelDefesa;
}
function geraDoisRandom(out int numAleatorio1, out int numAleatorio2, optional int valorMaximo = 10)
{
numAleatorio1 = Rand(valorMaximo);
numAleatorio2 = Rand(valorMaximo);
}
Nenhum comentário:
Postar um comentário