Jump to content

Au commencement était le Verbe...


Recommended Posts

Amis NoOb, soyez les bienvenus !

Elèves assidus que vous êtes, je présume naturellement que vous êtes déjà passés par la case départ... ^^




Préambule :

Si les outils fournis vous permettront de tripotter maps, items et dialogues, il vous faudra quoiqu'il en soit un minimum de base en programmation. Rien de bien compliquer rassurez-vous. Je développerai ici ces fondamentaux. Vous trouverez à la fameuse case départ des cours & tuto pour aller plus loin.
Le but n'est pas de vous apprendre à coder, mais de ne pas vous sentir trop à l'ouest en lisant le code des russes (ou le mien !).


LE CODE :

Qu'est-ce que "du code" ? Simplement du texte qui va être "transformé en programme" par un compilateur, une sorte de traducteur.
On code donc dans un language, ici l'AngelScript similaire au C++.
Il s'agit ni plus ni moins d'apprendre une langue étrangère (rassurez-vous, j'ai bcp de mal avec les langues ^^).


"Programmer", c'est modeler de l'espace mémoire avec du temps processeur.
Hey ?! Ne partez pas ! C'est juste une phrase d'intro !!!


============= Les variables =============

La mémoire pour nous, c'est surtout les variables. Une variable, c'est simplement un morceau de mémoire auquel on va attribuer une valeur.
Pour réserver cet espace, il faut tout d'abord déclarer notre variable et sa nature, son type.

Exemple :

int  moi_etre_une_var  =  123  ;

- on déclare une variable de type "integer" (nombre entier)
- on donne un nom à cette variable
- "=" n'a rien à voir avec l'égalité ici, c'est un opérateur. Il transfert ce qu'il y a à sa droite, vers sa gauche. L'égalité se fait par l'opérateur "==".
- on lui attribue une valeur
- ";" indique la fin de notre ligne de code

Rem. : les espaces entre les différents élémens n'ont aucune ici.


On aurait pu aussi bien créer une variable de type texte (chaine de caractère) :

string mon_texte = "blablabla";

- les "..." indique qu'il s'agit de texte brut.

Sachez également que l'on peut utilisé des "objets" en tant que type de variable. Nous y reviendrons plutard.


============ Les opérateurs ============

On peut les voir comme des verbes. Ce sont eux qui définissent l'action à effectuer. On devine souvent leur action facilement, mais méfiez-vous des faux-amis...
Allez faire un tour sur les tutos en lien plus haut pour en avoir une liste plus complète.
En voici quelques-uns, les classiques d'arithmétique :
<
>
<=
>=
+
-
*
/

Et quelques logiques pour la route (on les rencontre très souvent) :
&& "et"
| "ou"
== "est égale à"
!= "est différent de"


============= Les fonctions =============

Là on commence à toucher au temps les enfants ! ;o)
Une fonction, c'est comme une machine. On lui donne des "choses" (nos petites variables au hasard), et elle en fait des "trucs"...
A condition qu'on lui donne ce qu'elle attend, biensûr. D'où l'importance de savoir identifier les paramètres qu'elle réclame.
Tout comme les variables, elles ont besoin d'être déclarées :

int dieu_des_maths (int nombre_1, int nombre_2)
{
===// Corps de la fonction
===nombre_1 = nombre_1 + nombre_2;
===return nombre_1;
}

- types, vous remarquez que la fonction elle aussi peut avoir un type !
- nom de la fonction
- paramètres de la fonction, les variables et leur type. Notez qu'ils sont séparés par ","
- résultat de la fonction, ce qu'elle renvoie

Les " {...} " délimitent le corps de la fonction. Concernant le type du résultat, il peut être nul => VOID. Dans ce cas, il n'y a pas de RETURN, tout simplement. Cela dit, on peut utiliser un RETURN dans une fonction VOID pour stopper son exécution avant sa fin.
Vous rencontrerez souvent des "//", il s'agit des marques de commentaires c-a-d du texte qui ne sera pas pris en compte par le compilateur.


======== Petit retour sur les variables ========

Mais rares sont les petites fonctions aussi simples et gentilles...

Si on assimile une voiture à une fonction, mieux vaut lui donner le carburant qui lui correspond si on veut qu'elle avance...
Encore faut-il savoir faire la différence entre du 98 et du 95, sans oublier le gasoil !
Bah ici c'est pareil, juste en moins évident ^^

En effet les variables de type "objet" (les classiques aussi d'ailleurs), une var. Map par exemple, sont généralement accompagnées de signes cabalistiques étranges....
Genre :
Map@ ma_belle_carte;
ou bien...
Map& ma_belle_carte;
voir pire encore !
Map@[]@+ gloups;
:sosp:


...
des survivants ?
...

Yeah... Wasteland is harsh !


Rassurez-vous, j'ai quelques formules magiques que vous pourrez appliquer sans réflèchir pour savoir quoi passer en paramètre ;o)

Pour les courageux qui veulent poursuivre :
- les [] indique un tableau (ARRAY)
- entre les @ et &, la nuance est fine mais de taille en terme de code.


On va s'arrêter là, je ne voudrais pas perdre ceux qui ont tenu le coup jusqu'ici ! ^^

Ce ne sont pas des notions faciles à intégrer, laissez infuser doucement, vous venez de faire le plus difficile !

"Le Loup maintient le Caribou en bonne santé..."

Link to comment
Share on other sites

Avec ça vous avez de quoi vous "imprégner", vous faire une idée de ce qu'est la programmation. Et donc serez mieux armés pour explorer les fichiers du SDK. La prochaine étape sera de vous guider dans le SDK lui-même, on sort des concepts généraux là ! ^^ Mais vous pouvez être rapidement capable de créer votre propre petite map sur le dos du TLA pour y tester vos 1er scripts.

"Le Loup maintient le Caribou en bonne santé..."

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...