Skip to content

[FR] 1. Introduction, premier pas

Nicolas BOITEUX edited this page Dec 27, 2017 · 11 revisions

Pré requis

Cette page décrit les pré requis pour créer votre première classe.

  1. Premièrement, créer une nouvelle mission éditable dans votre répertoire mpmissions (par exemple test.altis)
  2. Votre répertoire doit déjà contenir un fichier mission.sqm
  3. Télécharger la dernière version du fichier oop.h sur git, et copiez le dans le répertoire.
  4. Créer un fichier init.sqf
  5. Ajoutez cette ligne en haut pour référencer oop.h #include "oop.h"

Ok, vous devriez maintenant avoir maintenant un environnement prêt à l'emploi.

Créer la première classe

Maintenant, nous allons créer votre première classe "OO_HELLOWORLD"

  1. Créer un nouveau fichier oo_helloworld.sqf qui contiendra la déclaration de votre classe.

  2. Ajoutez cette ligne en haut pour référencer oop.h #include "oop.h"

  3. Déclarez après la classe minimun de cette façon:

Example:

CLASS("OO_HELLOWORLD")
	PUBLIC FUNCTION("","constructor") {};
	PUBLIC FUNCTION("","deconstructor") {};
ENDCLASS;
  1. Sauvegardez le fichier oo_helloworld.sqf et insérer cette ligne dans le fichier init.sqf

    call compile preprocessFileLineNumbers "oo_helloworld.sqf";

Première execution

A moment, la classe est prêt à l'emploi et peut etre instanciée. Vous pouvez le faire en ajoutant ce code à la fin de votre fichier init.sqf

_myobjectreference = "new" call OO_HELLOWORLD;

ou

_myobjectreference = NEW(OO_HELLOWORLD,nil);

Bien, vous pouvez maintenant essayer de lancer la mission pour vérifier que cela fonctionne, et qu'il n'y a pas de problème de syntax. Si tout a été réalisé correctement, rien ne devrait se passer. Normal, vous n'avez pas demandé à votre objet de faire quelque chose !

Evolution

Dès maintenant, nous allons améliorer l'objet OO_HELLOWORLD pour qu'il fasse son véritable travail en affichant un message "hello world" et un peu plus :)

  1. Ouvrez votre fichier oo_helloworld.sqf

  2. Ajoutez cette ligne entre la déclaration du nom de la classe et la fonction constructor

    PRIVATE VARIABLE("string","name");

  3. Ajoutez cette nouvelle fonction après la fonction constructor

Example:

PUBLIC FUNCTION("","sayHelloWorld") {
	hint format ["Hello World from %1", MEMBER("name", nil)];
};
  1. Vous devez maintenant comprendre qu'il manque quelque chose dans le format de la command hint. En fait, le mot clef MEMBER fonctionne comme un accesseur et permet de récupérer la valeur de la variable privée "name" declare au point 2. Mais à ce moment, la variable était seulement déclaré mais n'avait pas de valeur.

  2. Pour donner une valeur à la variable "name", ajoutez cette ligne dans la fonction constructor

Example:

PUBLIC FUNCTION("","constructor") {
	MEMBER("name", "John");
};
  1. Sauvegardez le fichier, et revenez dans le fichier init.sqf pour ajouter cette ligne:

    "sayHelloWorld" call _myobjectreference;

  2. Félicitations, vérifiez que maintenant tout fonctionne comme prévu !

Clone this wiki locally