FONCTIONS

 

 

J'ai un petit confession à faire. Vous connaissez tous les exemples que j'avais donnés jusqu'ici, dans lequel je déclare une variable ou deux, saute alors bien dans un certain code, tel qu'assigner des valeurs à ces variables, ou inscription si rapport ou une boucle? Bien, c'était illégal. Dans UnrealScript réel, vous ne pouvez pas simplement écrire le code par lui-même. Les seules parties d'une classe qui peut être complètement toute seule sont la déclaration de classe, les déclarations variables, et les commandes d'exec.

Tout autrement doit faire partie une fonction ou état. Ainsi, quelle est une fonction, demandez-vous? Une fonction est juste un bloc de code qui effectue une certaine action. Une fois qu'ils sont définis, ils peuvent s'appeler dans d'autres parties du code, pour faire celui que ce soit elles soient censés faire. Ils peuvent être donnés, ou passés, des variables quand ils s'appellent, et ils peuvent renvoyer des valeurs. Je sais que ce tout retentit probablement très compliqué (vous assumant n'ont jamais fait la programmation avant), mais il est vraiment assez simple une fois que vous le comprenez. Jetez un coup d'oeil à cet exemple:

 

var int SomeInt, Result;

//Prenez un nombre entier, et renvoyez sa place
function int Sqr( int Num )
{
return Num * Num;
}

//Test la fonction Sqr()
function PostBeginPlay()
{
SomeInt = 3;
Result = Sqr(SomeInt);
}

 

Il y a deux fonctions ici, Sqr(), et de PostBeginPlay(). Sqr() prend un nombre, numérique, le multiplie par lui-même, et le renvoie. Vous noterez que je n'ai pas déclaré numérique vers le haut avec SomeInt et résultat. C'est parce que "on lui déclare" comme paramètre à une fonction. Quand j'appelle Sqr() avalez dans la fonction de PostBeginPlay(), je fournis SomeInt comme valeur dans la parenthèse, ou le paramètre. L'appel à Sqr() cause le code contenu dans la fonction de Sqr() à exécuter, avec SomeInt branché pour numérique vous notera également que je mets l'appel à Sqr() après que l'"résultat =". ceci soit parce que j'assigne la valeur qui est retournée par Sqr() pour résulter. Quand tout ce code est exécution faite, le résultat sera égal à 9: la place de 3. Vous avez pu également avoir noté le mot-clé "int" avant le nom de fonction dans la définition de Sqr(). Ce moyens "int" que Sqr() renvoie une valeur de nombre entier.

 

Quoi qu'il en soit, vous se demander à ce jour, d'où PostBeginPlay() peut-il s'appelle-t-il? La réponse est, le moteur. Il y a une grande variété de fonctions dans UnrealScript qui s'appellent par le moteur dans certains endroits et dans certaines circonstances. La fonction de PostBeginPlay() s'appelle quand un objet est d'abord créé, ainsi il fait un bon endroit pour mettre le code que vous voulez être exécuté avant n'importe quel autre code. Pour une liste de fonctions communes qui s'appellent par le moteur (aussi bien que d'autres fonctions utiles qui ne s'appellent pas par le moteur), référez-vous à la référence de fonction sur le côté de cette page.

 

Ainsi, êtes-vous complètement confondus encore? Si pas, alors vous êtes faire bon. Je sais que je rayais ma tête tout à fait un peu quand j'ai appris la première fois cette substance. Bien, lecture de subsistance, elle va mieux (ou plus mauvais, selon votre point de vue). Vous savez la manière que j'avais déclaré des variables toutes le long? Au début d'une classe, en utilisant la syntaxe "variété [ vartype ] [ varname ]"? Bien, ce n'est pas la seule manière que vous pouvez déclarer une variable. Que le type de variable, avoué en dehors de de toutes les fonctions, s'appelle une variable globale. Des variables globales peuvent être consultées n'importe où dans une classe, et même en dehors de d'une classe (car nous verrons peu un plus tard). Mais, il y a également des variables locales. Des variables locales sont déclarées au début d'une fonction, et peuvent seulement être consultées dans cette fonction. Elles sont utiles pour faire les opérations à court terme qui ne devront pas "être vues" en dehors de d'une fonction particulière. Vous voyez, un des éléments principaux d'une fonction, et du programme orienté objectivement dans l'ensemble, est le fait qu'une classe ou une fonction peut partager des données utiles et l'information importante avec d'autres classes et fonctions, mais se cache comment elles ont obtenu ces données et information utiles. Elles montrent seulement le résultat, mais pas comment elles ont trouvé le résultat. Est-ce que de toute façon, où j'allais avec ceci? Ah, oui. Variables locales. Les variables locales sont justes avoué comme des variables globales, seulement elles emploient le mot-clé local au lieu du mot-clé de variété.

 

function PostBeginPlay()
{
//Déclare
un local entier
local int SomeInt;

//Assign
e une valeur
SomeInt = 3;
}

 

Ainsi, c'est une variable locale. Pas trop compliqué, n'est-ce pas? Juste comme une variable globale, excepté le fait qu'il peut seulement être consulté à l'intérieur d'une fonction particulière.