AccueilSiteFAQRechercherS’enregistrerConnexion
Poster un nouveau sujet   Répondre au sujet
 Ruby, acte I, scène 1: POO, kézako?Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Pipo
Acolyte
Acolyte



Inscrit le : 17 Aoû 2007
Messages : 81

MessageSujet: Ruby, acte I, scène 1: POO, kézako?   16/12/2007, 20:23

Bon, c'est mon tout premier "cours" pour apprendre le ruby. Ici, je pars du principe que vous ne connaissez strictement rien du ruby, donc je pars vraiment de zéro. D'ailleurs, pour l'instant, si je dis "cours" et non "tutorial", c'est parce qu'après avoir lu ce post, vous ne serez pas plus capable de coder qu'avant Laughing

Tout simplement parce que, dans cette série de tutoriaux, je vais essayer de faire en sorte que vous soyez capable de créer un script de toute pièce, et que pour ça, plus que de la simple syntaxe, il faut penser ruby.
J'ai commencé un peu comme tout le monde, de manière à peu près désordonnée en disséquant des scripts trouvés ci et là et en ingurgitant des tutoriaux, mais j'y ai mis le temps, et je pense que de vraies explications m'auraient permis d'avancer un peu plus vite Laughing

Donc même si vous vous y connaissez déjà un peu, et que vous savez modifier des scripts ou créer un menu, cela peut peut-être quand même vous servir Wink

I,1: POO, kézako?

Tout d'abord, il faut savoir que le ruby est un langage totalement orienté objet (sisi, c'est vrai, je l'ai lu quelque part :xd: ). Qu'est-ce que ça veut dire? Ca veut dire que TOUT est objet. Ou presque. Mais...

Qu'est-ce qu'un objet?

Un objet, c'est une structure de données, qui peut en fait être n'importe quoi. Dans RPGMaker, par exemple, un évènement est un objet. Une variable d'évènements est un objet. Chaque héros est un objet. Un ennemi est un objet. La map est aussi un objet. Pour faire plus simple: toute chose virtuelle, toute information est un objet.

En fait, la définition "structure de données" est peut-être la plus précise. Un objet regroupe ainsi deux types d'informations : des variables (donc d'autres objets), et des méthodes qui lui sont assignés. Pour comparer à quelque chose de concret, l'objet Voiture contient les informations (variables) "nom", "puissance moteur", "type moteur", "kilométrage", etc. Et il possède des méthodes telles que "allumer moteur", "avancer", "marche arrière", "freiner", etc.

Mais ceci fera l'objet d'un second chapitre. Pour l'instant, concentrons-nous sur...

Les variables

Une variable, c'est quoi? Une variable, c'est un coffre, un récipient. Et à quoi ça sert un récipient? Bingo : à y mettre des objets. Vous voyez que vous y arrivez Laughing

Mais pourtant... une variable, c'est pas plutôt quelque chose qui peut prendre des valeurs? Peut-être que c'est comme ça dans le système d'évènements, mais en ruby, pas exactement. En ruby, une variable-récipient contient des objets, de n'importe quel type.

Etant donné qu'un chiffre est un objet (et oui!), une variable peut prendre une valeur numérique. Une variable peut également contenir du texte (une chaine de caractères), mais aussi n'importe quel objet : les héros sont contenus dans des [del]pots de fleur[/del] variables.
En fait, les variables, ce sont des vases magiques qui possèdent plusieurs propriétés :

-Ils peuvent contenir et ainsi protéger des objets, de n'importe quelle sorte, qui seraient normalement mangés par le méchant Garbage Collecter, placés à l'air libre sans protection. Un objet sans variable est un objet mort.
-Ils fusionnent avec leur contenant. Mettez un chiffre dans une variable, et cette variable (tout en restant une variable) deviendra chiffre. Ainsi, 1+1 = 11, et 1+[variable contenant 1] = 11 aussi. En fait nan, je vous ai menti, 1+1 ça fait 2 (eh oui, le choc!). Et pendant qu'on y est le Père Noël il existe pas. Et oui, ça fait mal, je sais Sad
-Il suffit de penser à une variable pour l'avoir devant soi et pouvoir la manipuler. Et oui, c'est pratique Wink
-Toutes les variables existent déjà. C'est juste que, ne contenant rien, elles prennent la forme de... rien. Plus concrètement, contrairement à d'autres langages de programmation, il n'est pas nécessaire de "créer" une variable. Donc si vous faites, d'un coup sans prévenit, $gdiehrpjqfhue = 65, ça ne pose aucun problème!
-On peut parfaitement mettre un objet dans une variable en contenant déjà un : l'ancien objet est alors supprimé. D'ailleurs, on peut très bien mettre du vide (nil) dans une variable, et ainsi la supprimer.

L'important, c'est surtout que vous pouvez manipuler des variables comme s'il s'agissait en fait de l'objet contenu.

Au niveau de la syntaxe, tout ce qui commence par $ est l'un de ces vases magiques flottant dans l'univers virtuel.
Ainsi, quand on fait:
Code:
 $scene = Scene_Map.new
on ne fait que rajouter un nouvel (new) objet de type Scene_Map dans la variable $scene : il ne s'agit PAS d'une "commande", mais comme le jeu est programmé pour traiter d'une certaine manière la variable $scene, le simple fait de mettre quelque chose dedans (où de changer ce qui est dedans) produit de grands changements.


Donc, pour récapituler, voici la vision que vous devez avoir du jeu : un monde parallèle, rempli de vases magiques prenant la forme de différents objets. Voilà tout. Vraiment aucun rapport avec le système d'évènements, où il s'agit d'exécuter des commandes préfaites l'une après l'autre Wink

Mais ne vous inquiétez pas, avec RPGMaker, il y a déjà des dizaines de scripts préfaits, qui transforment cet espace étrange en un vrai jeu vidéo. L'important, c'est de bien savoir de quoi ce jeu est constitué, afin de pouvoir mieux le modifier.

Bah oui, vous z'avez pas appris grand-chose. Et oui, vous vous sentez trahit, blessés au plus profond de votre âme, mais je vous avait prévenu.

Prochain cours au programme : les chiffres, les strings et les tableaux de valeurs (un vrai conte de fée ) Razz
Revenir en haut Aller en bas
Sowatt
Modérateur
Modérateur


Sexe:Masculin
Age : 18
Inscrit le : 17 Juin 2007
Messages : 192
Localisation : Ile de France
Projet RM : "In Game" (2k3)
Loisirs : Musique

MessageSujet: Re: Ruby, acte I, scène 1: POO, kézako?   17/12/2007, 00:04

Citation:
les chiffres, les strings et les tableaux de valeurs

Petit pervers ... Razz

Héhé bon tuto sinon, merci beaucoup =)
Revenir en haut Aller en bas
ElvAn
Nouveau-venu
Nouveau-venu


Sexe:Masculin
Age : 18
Inscrit le : 09 Déc 2007
Messages : 20
Localisation : Sud Est de la France

MessageSujet: Re: Ruby, acte I, scène 1: POO, kézako?   17/12/2007, 12:49

Bon tuto, merci Smile

Sinon j'ai une question stupide qui me trotte dans la tête: pourquoi tout le monde prend l'exemple de la voiture pour définir un objet en programmation? Shocked
_________________
La seule personne que vous êtes destinée à devenir est la personne que vous déciderez d'être.
Revenir en haut Aller en bas
Bahamut 1.2
Administrateur
Administrateur


Sexe:Masculin
Age : 20
Inscrit le : 06 Jan 2007
Messages : 966
Localisation : Île de France
Projet RM : Ouroboros, Le dernier monde
Loisirs : RPG Maker ! ! !

MessageSujet: Re: Ruby, acte I, scène 1: POO, kézako?   17/12/2007, 19:52

Parceque Pipo a tout pompé sur le tuto de "je sais plus qui" que j'ai lu ya longtemps Razz
Plus serieusement c'est excellent ce tuto^^
Merci !!
_________________
Revenir en haut Aller en bas
Pipo
Acolyte
Acolyte



Inscrit le : 17 Aoû 2007
Messages : 81

MessageSujet: Re: Ruby, acte I, scène 1: POO, kézako?   19/12/2007, 13:35

Je n'y avais même pas pensé... J'ai mis cet exemple en pensant à la suite.
Mais c'est vrai que la voiture a déjà été souvent utilisée comme exemple, sûrement car elle possède des caractéristiques parlantes et des méthodes parlantes (par exemple, la méthode "caler" qui s'exécute si une autre méthode est utilisée dans certaines conditions)

Code:
Petit pervers ... :P


non non, même pas, juste feignant (c'est plus court à écrire que "chaine de caractère). Et si tu as lu mon second tuto, tu as vu que, tel un vrai gentleman, je n'ai fait aucune blague sur le sujet, et ouais, j'ai des principes, môa
Revenir en haut Aller en bas
Ruby, acte I, scène 1: POO, kézako?Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Zenith RPG :: Entraide :: Tutoriaux divers-
Poster un nouveau sujet   Répondre au sujet