Tutorial réalisé pour Zenith RPG par Bahamut 1.2, merci de demander l'autorisation avant de le copier ailleurs.Ce tuto (monstrueux niveau longueur^^) a pour but d'introduire les bases du RGSS, le Ruby de RPG Maker XP. L'avantage si vous maîtrisez un minimum les événement c'est que le RGSS y ressemble énormément, en fait ce serait plutot l'inverse, logique puisque c'est le langage utilisé dans les projets RM.
Ce tutorial se veut surtout pratique, mes connaissances étant limitées sur ce sujet, je vais rapidement rentrer dans le vif du sujet, mais vous aurez déjà quelques possibilités, surtout qu'un deuxieme tuto arrivera bientot.
En tout cas ne soyez pas rebutés par le Ruby/RGSS, car aussi complexe qu'il ait l'air, il a été pensé pour être
pratique et
logique, au même titre que chaque langage de programmation !
Voici le plan de ce tutorial :
I-Les variables et booléens
II-Opérations sur les variables
II-Les flottants
IV-Opérations sur les booléens
V-Infos complémentaires sur les variables et booléens
VI-Les variables des événements de RPG Maker
I-Variables et booléensOn va donc directement commencer à parler variables. Si vous ne maîtrisez pas ça ce n'est pas la peine de continuer, je vous invite donc à lire un tuto sur le sujet.
Bon vous vous demandez surement ce qui se cache derriere le nom barbare de "booléen" ? Je vais mettre les choses au clair tout de suite, histoire d'éviter de vous prendre la tête ! Les booléens c'est ni plus ni moins que le "vrai" nom des interrupteurs, switchs et autres boutons qui désignent tous la meme chose sous RPG Maker (quand vous utilisez les événements). Comprenez bien que ces quatre noms désigent exactement la même chose, booléen est le nom que l'on leur donne en programmation, car vous vous doutez surement qu'ils sont utilisés ailleurs que dans RPG Maker ! Voilà maintenant vous savez ce qu'est une variable et un booléen, compliquons (un tout petit peu) les choses.
En ruby on distingue trois types de variables, voici d'abord un exemple de chaque :
$variable : variable globale
@variable : variable de classe
variable : variable locale
Vous en avez surement déjà croisé si vous avez exploré les scripts de RM...Quelles différences y a t il entre ces trois types de variables, pourquoi yen a-t-il trois d'ailleurs ??
Tout d'abord les variables
globales, commençant par le signe
$ sont déstinées à être utilisées dans tout le programme, autrement dit on peut s'en servir n'importe quand, par exemple les variables utilisées en événements sont des globales. Ainsi comprenez bien que les variables locales (commençant par @)et de classe (impérativement ecrites en minuscules)
ne peuvent pas être utilisées n'importe quand ! En fait les variables locales et de classe sont automatiquement "détruites" dès que le programme n'a plus besoin d'elles, elles ne sont utilisables respectivement que dans une classe, ou une fonction. Classe ? Fonction ? Je vous parlerai de tout ça dans le prochain tutorial, pour l'instant nous travaillerons sur des globales, donc des variables utilisables n'importe où dans le logiciel.
II-Opérations sur les variablesTout comme avec les événements il est évidemment possible d'effectuer toutes sortes d'opérations sur nos variables, additions, soustractions et compagnie. Voici quelques opérations réalisables, et à coté le symbole à utiliser pour demander au programme de les effectuer (vous allez voir c'est vraiment pas compliqué...) :
Addition : +
Soustraction : -
Division : /
Multiplication : *
Puissance : **
Rendre égal : =
Voici maintenant un exemple concret. On veut rendre notre variable égale à 5, tout simplement, ce qu'on aurait pu faire en événements bien sur. Il suffit d'ecrire :
- Code:
-
$variable = 5
Avouez que ça aurait pu etre pire. Ainsi on a donné directement une valeur à notre variable, mais on peut faire bien d'autres choses plus intéressantes, comme ajouter 5 à notre variable. Voici comment on pourrait faire :
- Code:
-
$variable = $variable + 5
On pourrait faire ça, ça marche très bien. Seulement ça fait bizarre de répéter "$variable", et le but de tout langage de programmation étant de vous simplifier la vie en vous faisant ecrire le moins possible, voilà une syntaxe plus appropriée :
- Code:
-
$variable += 5
Evidemment ça semble tout de suite moins naturel, mais ça reste compréhensible, avant on disait "
$variable vaut $variable + 5", et maintenant "
on ajoute 5 à $variable". Ne soyez surtout pas rebutés par cette façon de faire, au bout de quelques opérations vous serez habitués. Ainsi on peut bien sûr effectuer d'autres opérations exactement de la meme maniere, comme par exemple :
- Code:
-
$variable -= 1
Soustraction de 1
- Code:
-
$variable *= 12
Multiplication par 12
- Code:
-
$variable **= 2
Elevée à la puissance 2 (au carré)
Voici donc une vraie petite calculette. Mais souvenez vous des regles de priorités aux calculs, apprises au college :p Pourquoi je vous parle de ca ? Regardez cette exemple :
- Code:
-
$variable *= 6+4
En mathématiques la multiplication a la priorité, ainsi si on fait 2*6+4, ca nous donne 12+4=16. Or si vous faites le code ci dessus avec votre $variable egale à 2 vous n'obtiendrez
pas 16 comme résultat. En fait le programme va faire comme si vous aviez mis des parenthèses à 6+4, c'est a dire qu'il va commencer par additionner les deux chiffres et ensuite multiplier par $variable. Comprenez donc bien que Ruby va d'abord calculer l'expression de droite avec de faire l'opération "principale" que vous lui demandez.
Pour clore ce chapitre, sachez que vous pouvez effectuer exactement les memes opérations avec plusieurs variables, entre elles. Voici un exemple rapide, mais tout marche de la meme maniere.
- Code:
-
$chiffre_1 += chiffre_2
J'en profite pour vous dire de ne jamais mettre d'espace dans le nom d'une variables, ni de tiret qui pourrait etre interprété comme un signe "moins".
L'heure est venue de parler des flottants, ça va nous détendre. Je ne sais pas si c'était la peine de leur dédier un chapitre mais celui là commence à etre long...
III-Les flottantsEncore un nom tres barbare pour pas grand chose, rassurez vous. Les nombres flottant désignent tout simplement les nombres à virgule. Si vous avez remarqué on n'en a pas encore utilisé, parcequ'en fait il ya quelques petites subtilités à connaître. Mais dans 2 minutes vous saurez tout !
Prenons en exemple une opération simple.
- Code:
-
$variable = 10/2
Comprenez bien que dans la pratique ce code est idiot puisqu'on aurait pu mettre directement 5 au lieu de 10/2 (car 10 divisé par 2 ça fait 5 pour ceux qui en doutent encore^^). Donc bon ici pas de probleme, le programme fait l'opération et renvoie 5 en résultat. Prenons maintenant un autre exemple :
- Code:
-
$variable = 5/2
$variable vaut alors en théorie 2,5. Oui mais non. Pour ruby variable vaut 2. Tout rond. En fait le programme ne va même pas se donner la pein d'arrondir, il tronque, c'est-à-dire qu'il ne garde que la partie entiere. En fait c'est parce qu'on n'a utilisé que des nombres entiers. Il faut donc "signaler" que nous, ce qu'on veut, c'est utiliser des chiffres à virgules, des flottants quoi. Pour le faire c'est simple il suffit dans l'opération d'utiliser des flottants. Ainsi il faudrait ecrire :
- Code:
-
$variable = 5.0/2.0
On obtient alors le résultat de 2.5 et non plus 2. Notez qu'il faut mettre un point et non une virgule dans les flottants, car c'est la notation américaine et elle est utilisée dans tous les langages de programmation. Il suffit en fait de mettre un flottant pour que le programme détermine tout seul le nombre de chiffres à utiliser (c'est ma découverte du jour). Il suffit aussi d'avoir
un chiffre flottant dans l'opération pour que le résultat soit un flottant.
- Code:
-
$variable = 5.0/2.0
$variable = 5/2.0
$variable = 5.0/2
$variable = 5.000000000000000/2
$variable = 5.0000000/2.00000000000000000000000000000000
Toutes ces opérations donneront le même résultat, de 2.5.
Pour les nombres à virgules avec une infinité de chiffres décimaux il faudra se contenter de 15 chiffres apres la virgule (enfin ça devrait suffire^^"). Par exemple 10/3.0 donnera 3.333333333333333 (rappel : 10/3 donnera simplement 3).
Si vous faites une division, privilégiez les flottants car le résultat à de fortes chances d'être un chiffre à virgule. Ainsi se termine le chapitre des flottants, parlons un peu des booléens maintenant, ça va aller vite je vous rassure
IV-Opérations sur les booléensLes booléens fonctionnent comme les variables, à la diffrérence qu'il ne peuvent prendre que 2 valeurs que l'on appelle
true et
false (respectivement "vrai" et "faux" en anglais), qui correspondent à ON et OFF pour les "boutons" utilisés dans les événements. Tout fonctionne comme enévenement, la seul différence est qu'on remplce ON par
true et OFF par
false. En toute logique on ne peut pas faire d'opérations à proprement parler sur des booléens, seulement les rendre égaux à true ou false. Pour ça on utilise le signe
=.
- Code:
-
$booleen = true
Vous remarquerez le $ qui montre bien que les booléens fonctionnent comme les variables, seule la valeur que vous lui donnez différencie un booléen d'une variable.