[ruby] Créer des jeux sur rpg maker

Fermé
the bie - 14 sept. 2007 à 19:36
 dialga73 - 12 mai 2012 à 17:03
pourriez vous m'édée car je voudrez apprendre le language ruby car je créé des jeux rpg sur rpg maker donc je voudrait pouvoir ecrire des script pouvez vous me donner un liens ou ils apprendrez ce language
A voir également:

13 réponses

gagner79 Messages postés 261 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 20 décembre 2009 40
28 mai 2008 à 14:57
ensuite il faut que tu mettes la condition pour que le cadre ne s'affiche que quand un interrupteur est activé :

if $game_switches[numéro de l'interrupteur] == true
self.visible = true
else self.visible = false
end

tu mets ca après Window_Base.new

ensuite il faut que tu appelle le script :
tu met un événement avec appeler un script comme commande
et tu met le script suivant :
Cadre.new

alors ca te donne quoi ?
8
Bonjoue gagner79

me mettant dans la creation de script (où je debute) j'ai suivie ta demarche, j'ai pas tout compris au debut, mais en touchant un peu le script (a peine vu mon niveau ^^) je suis parvenu a faire apparaitre un cadre (sauf que je n'utilise pas :

if $game_switches[numéro de l'interrupteur] == true
self.visible = true
else self.visible = false
end

cela me faisait une erreur, si tu pouvais m'expliquer plus en detail, sa serai simpa =)
et autre chose, cette fenêtre que je fait apparaitre... disparait quelques seconde après :/ pourquoi?

merci d'avance =)
0
Bonjour , moi je fais pour tester le jeu et il me met "??? error04??"
0
gné ? ( Winner_01 )
0
gagner79 Messages postés 261 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 20 décembre 2009 40
28 mai 2008 à 14:51
moi je peux t'apprendre c'est très facile
commencons tout de suite si tu veux

pour faire un script je te conseille d'utiliser les autres scripts ou des bouts de script afin de ne pas avoir à faire tout tout seul

exemple : afficher un cadre sur la map quand un certain interrupteur est activé

pour ca tu te bases sur le script "Window_Base"
tu fait nouveau script au-dessus de main, tu choisis un nom, celui-ci n'auras aucune importance

un script commence souvent par : "class" + le nom du script
exemple : class Cadre
ensuite il faut que tu crée une méthode, quand tu vas appeler le script, il ira direct sur "def initialize" pour t'expliqué tout ce qui est écrit entre un "def" et un "end" qui suit est appelé méthode

on crée donc la méthode initialize :

def initialize

ensuite on rajoute ce qu'il fut pour faire le cadre : "Window_Base.new(x, y, width, height)"

qu'est ce que ca veut dire ? ca appelle tout simplement la méthode initialize du script Window_Base
ce qui est entre parenthèses est appeler "argument"
ils sont séparés par une virgule, on en a donc 4 ici

le 1er argument : x
tu le remplaces par la position du cadre en partant de la gauche : 0 = tout à gauche
tout à droite = 640

le 2ème argument : y
tu le remplaces par la position du cadre en partant du haut : 0 = tout en haut
tout en bas = 480

le 3ème : width
sache que du ruby c'est de l'anglais dans tous les sens
width signifie "largeur"

le 4ème : height
height siginfie "hauteur"

exemple :

class Cadre

def initialize
Window_Base.new(0, 0, 100, 100)
end

end

voila le début
7
d:
0
gagner79 Messages postés 261 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 20 décembre 2009 40
9 juil. 2008 à 14:25
oui il est possible d'utiliser une image à la place du windowskin, et c'est facile :

pour afficher une image sur l'écran c'est super simple :
exemple : on importe l'image est dans le dossier Pictures, l'image s'appelle ici "cadre"
le script est le suivant :
@image = Sprite.new
@image.bitmap = RPG::Cache.picture("cadre")

il faut ensuite choisir les coordonnées de l'image :
@image.x = 100
@image.y = 100

l'écran fait 480 pixels de hauteur et 640 de largeur, donc pour mettre l'imag en bas :
@image.y = 480 - la hauteur de l'image
@image.x = 640 - la largeur de l'image

! pour savoir la taille d'une image, il suffit de faire un clique-droit puis Propriétés

ainsi on a crée une image sur l'écran

maintenant il faut pouvoir écrire dessus, on ne pas écrire directement sur l'écran ni directement sur une image, il faut donc le faire sur un cadre, mais comme on en veut pas, on le mettra invisible

créez un cadre comme je vous ai expliqué, à la même position que l'image, et invisible

pour le rendre invisible, on peut utiliser "self.visible = false" mais le probème, c'est qu'on ne verra pas ce qu'il y a dessus non plus !
donc on utilise "self.opacity = 0", pour rendre le cadre totalement invisible, tout en voyant ce qui est écrit dessus

pour écrire la valeur d'une variable :
la valeur d'une variable est donnée pas "$game_variables[numéro de la variable]"
text = $game_variables[numéro de la variable]
self.contents.draw_text(0, 0, 100, 32, text)

vous essayez et ... PROBLEME : la valeur de la variable est un nombre, alors que draw_text sert à écrire une chaîne de caractères ! il faut donc la transformer, pour cela on met ".to_s" :
text = $game_variables[numéro de la variable].to_s
self.contents.draw_text(0, 0, 100, 32, text)
5
Bonjour, premierement désolé de pas avoir repondu plutot, en ce moment, internet est pas trop disponible (ou plutot, disont que je ne l'ai pas la ou je suis, obligé d'aller chez un pote. Merci pour ces info, je vais essayer, faire ma ptite image et je verrai comment je peux me personaliser tout ça =)

merci beaucoup pour ton aide, j'attend tes prochain post avec impatience =) (sur tout et n'importe quoi, du moment que sa concerne les script, sa m'interesse pour mieu comprendre
0
Regarde kaki.com
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gagner79 Messages postés 261 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 20 décembre 2009 40
4 juil. 2008 à 14:27
oui en effet petite erreur de ma part

pour pouvoir voir le cadre sur la map, rajoutez ca à la fin du script :

class Scene_Map

alias cadre_main main
def cadre_main
cadre = Cadre.new
end

alias cadre_update update
def cadre_update
cadre.update
end

end


ensuite revenez dans initialize de Cadre et enlevez ca :
if $game_switches[numéro de l'interrupteur] == true
self.visible = true
else self.visible = false
end

ensuite après le "end"
on va rajouter une méthode qui permet de voir tout le temps le cadre sur la map :

def update

puis le contenu de la méthode :

vous pouvez d'abord rajouter ca pour ne voir le cadre que si un interrupteur est activé :

if $game_switches[numéro de l'interrupteur]
self.visible = true
else self.visible = false
end

n'oubliez pas de remplacer "numéro de l'inteerrupteur" par le numéro de l'interrupteur qui permmettra de voir le cadre

ensuite si vous voulez afficher quelquechose dans le cadre, revenez dans initialize, et rajoutez :
self.contents = Contents.new(self.width - 32, self.height -32)

n'oubliez pas que self renvoie au cadre, self.contents c'est pour pouvoir écrire ou mettre une image sur le cadre

ensuite revenez dans update
et mettez :
self.contents.draw_text(x, y, 100, 32, "Message")
ici on écrit "Message"
remplacez x par la position x du message (x=0 étant tout à gauche du cadre) puis remplacez y de la même facon

puis si ca donne une erreur dites moi laquelle SVP
3
Rebonjour

bon, j'ai suivi ce que tu as dit, parfois sa bugger, je relisait ce que tu avais écrit, comprenant mieux petit a petit ...
voila, maintenant, le jeu se lance (enfin !!!) mais .... il bug quand je suis a l'ecran titre, une fois que j'ai choisie "nouvelle partie" tou se fige et je reçoit un message d'érreur "Game.exe a rencontré un probème et dois fermer" .... d'ou viens le problème? je te donne mon script, dit moi où j'ai faux stp =) :

class Cadre
def initialize
Window_Base.new(0, 0, 130, 130)
end
end
class Scene_Map
alias cadre_main main
def main
cadre = Cadre.new
end

alias cadre_update update
def update
cadre.update
self.contents.draw_text(0, 0, 100, 32, "hello")
end
end
0
Bonjour,

La règle numéro 6 du forum demande de ne pas rédiger de messages en langage SMS.
Un minimum d’attention dans l’orthographe et la grammaire nous permettrait déjà de comprendre ton message, et éventuellement d’y répondre.
Des logiciels de traitement de texte comme Open Office (ou Word) permettent de corriger les fautes de français, donc ce n’est vraiment pas difficile, même si faire des efforts pour écrire lisiblement n’est pas ta tasse de thé.

Pour répondre a ta question, je te conseille d’aller voir le site officiel de Ruby en France, http://www.rubyfr.org/

Bonne programmation.
2
Je n'ai pas très bien compris ^^'

Si il aurait moyen d'avoir de l'aide sur MSN voici mon adresse :

Sore-light@hotmail.fr
2
gagner79 Messages postés 261 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 20 décembre 2009 40
5 juil. 2008 à 14:16
bon, j'ai fait encore quelques erreurs, alors j'ai tout refait de manière plus explicite, et en
approfondissant tout

tout ce qui est après une dièse (#) est un commentaire, il n'est donc pas lu par RPG Maker
tout ce qui est entre "=begin" et "=end" est aussi un commentaire, c'est pareil que mettre des #,
mais ca évite d'en mettre à chaque ligne


=begin

voici une classe :
class Cadre
end

voici une méthode :
def initialize
end
pour l'appeler on met Cadre.new
cette méthode est spéciale et c'est la seule qui est appelée par autre chose que par son nom

voici une méthode traditionelle :
def methode
end
pour l'appeler on met Cadre.methode
ces méthodes ne s'appellent que par leur nom, ici "methode"

! Une méthode se met TOUJOURS dans une classe et JAMAIS dans une autre méthode

voici une superclasse
< Window_Base
une superclasse ce met TOUJOURS juste après le nom de la classe, ici après "class Cadre"
pour appelez cette superclasse, on met "super"
vous constaterez que ça appelle en fait le script Window_Base, on aurait donc très bien pu
mettre "Window_Base.new", quand on appelle Window_Base, on va directement à sa
méthode "initialize", cette méthode nécessite 4 arguments, les voici :
(x, y, width, height)
remplacez x par la coordonnée horizontale du cadre, x=0 étant tout à gauche
remplacez y par la coordonnée verticale du cadre, y=0 étant tout en haut
remplacez width par la largeur du cadre
remplacez height par la hauteur du cadre

"self" renvoie TOUJOURS à quelquechose qu'on a défini AVANT, ici le cadre
pour écrire un message, on met :
self.contents.draw_text(0, 0, 100, 32, message)
remplacez les 4 premiers arguments comme précédemment, et le dernier par le message à
écrire dans le cadre, ENTRE GUILLEMENTS

voici une variable locale :
stock = "Bonjour !"
une variable locale ne peut être utilisée que dans la méthode où elle a été définie

voici une variable d'instance
@stock = "Salut !"
une variable d'instance ne peut être utilisée que dans la classe où elle a été définie mais
peut passer à travers les méthodes de la classe où elle a été définie

voici une variable globale
$stock = "Génial !"
une variable globale peut passer à travers tous les scripts, partout quoi

il existe une autre sorte de variable, très peut utilsée, qui peut passer à travers les méthodes
d'un même script, mais pas entre les scripts :
@@stock = "Bof bof !"

=end


class Cadre < Window_Base #Window_Base = pour créer un cadre


def initialize
super(100, 100, 100, 100) #on crée le cadre
self.contents = Bitmap.new(100 - 32, 100 - 32) #pour pouvoir écrire quelquechose dessus
refresh #on va à "def refresh"
end

def refresh
self.contents.clear #on efface tout
self.contents.draw_text(0, 0, 100, 32, "Message") #on écrit "Message"
end

def update
refresh
end

end #de Cadre



class Scene_Map #quand on est sur la map

#ca c'est un peu plus compliqué (c'est pour copier la méthode "main" du script Scene_Map,
#puis pour faire apparaître le cadre sur la map :

alias cadre_main main
def main
$cadre = Cadre.new
cadre_main
$cadre.dispose
end

alias cadre_update update
def update
$cadre.update
cadre_update
end

end #de Scene_Map






après avoir créé un cadre, on peut le définir et le redéfinir, par exemple :
on crée un événement, puis appeler un script, et on met Cadre.x = 20
le cadre a donc changer de position

il existe beaucoup de petits trucs pour faire des trucs avec les cadres, en voici la liste :

x : changer la position x
exemple : $cadre.x = 20

y : changer la position y
exemple : $cadre.y = 110

width : changer la largeur
exemple : $cadre.width = 200

height : changer la hauteur
exemple : $cadre.height = 80

visible : rendre le cadre visible ou invisible
exemple : $cadre.visible = true (pour rendre le cadre visible)
$cadre.visible = false (pour rendre le cadre invisible)

opacity (ou back_opacity) : changer la transparence (maximum = 255)
exemple : $cadre.opacity = 0 (transparent)


CONTENTS :

contents : pour pouvoir écrire sur un cadre
exemple : $cadre.contents = Bitmap.new($cadre.width - 32, $cadre.height - 32)
($cadre.width - 32 sert à ce qu'on puisse écrire partout sur le cadre, mais qu'on ne
puisse pas déborder)

contents.draw_text : écrire sur le cadre
exemple : $cadre.contents.draw_text(0, 0, 60, 32, "SENSAS !")

contents.blt : afficher une image sur le cadre
exemple : icon = RPG::Cache.icon("021-Potion01")
$cadre.contents.blt(0, 0, icon, Rect.new(0, 0, 24, 24), 250)
(l'image est ici "021-Potion01" d'RPG Maker)


FONT :

contents.font.face : changer la police du cadre
exemple : $cadre.contents.font.face = "Arial"

contents.font.name : changer la taille de la police du cadre
exemple : $cadre.contents.font.size = 12

contents.font.color : changer la couleur de la police du cadre
exemple : $cadre.contents.font.color = Color.new(0, 255, 10, 200)
("Color.new" permet de créer une couleur, voici ses arguments :
le 1er -ici 0- est la dose de rouge
le 2ème -ici 255- est la dose de vert
le 3ème -ici 10- est la dose de bleu
le 4ème -ici 200- est la dose de clairté)
! Ne fonctionne que si c'est dans le script


Il en existe plein d'autres, à vous de les découvrir ! lol



il est aussi possible de connaitre ces informations, exemples :

savoir la position x du cadre :
print $cadre.x

savoir si le cadre est visible ou non :
print $cadre.visible
(si true : il est visible, si false : il est invisible)



! Si vous voulez définir le cadre dans le script,
faites le dans update


Plus tard je vous expliquerai comment créer des
trucs pour les cadres, ce qui est plus difficile
mais un peu plus "amusant".
2
Ok! Merci des renseignement, je vais m'amuser a bidouiller tout ça pour mieux comprendre =)

vivement que tu me disent d'autre chose que l'ont peux faire dans un cadre (mon but étant d'arriver a la fin a faire une belle interface de jeu. et j'aurai une petite question, que je pense, tu y viendra plus tard (voire bien plus tard) c'est comment faire pour creer une interface dans les combat dans un t-rpg, où il serai possible d'utiliser la souris pourcliquer sur les bouton, pour que ce soit plus facile a gerer?

je prescise d'avance mon but: avoir le style de combat du jeu "dofus" (je m'avance, j'utilise des pa pour attaquer, je m'ecarte de l'ennemis pour esquiver les coup). bon, pour le script du combat, j'ai, mais c'est pas tout a fait ça...


(si quelqu'un connai un script qui ferai ça (et pas une seule possibilité de bouger) et qui fait un combat au tour par tour (et pas tout mes joueur, puis tout les ennemis ...) je suis preneur :D

revenons a nos moutons. En plus de tes conseils, j'apprend sur des tutorial, ce qui me permet de mieux comprendre, afin de ne pas trop te deranger sur tout les probleme que je recontre, essayer de les corriger moi-meme et t'envoyer la reponse si besoin :p.

amicalement
0
gagner79 Messages postés 261 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 20 décembre 2009 40 > Cephirius
8 juil. 2008 à 15:18
Qu'est-ce que tu veux faire précisément dans le cadre ?
0
Cephirius > gagner79 Messages postés 261 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 20 décembre 2009
8 juil. 2008 à 20:20
en personellement, je voudrai creer une interface de combat personalisé, donc au lieu d'aller chercher les sort dans un menu, les avoir directement dans le menu que je situerai en bas de l'ecran (si tu vois le jeu "dofus" c'est un tres bon exemple de ce que je voudrai, enfin, juste la barre de sort) je voudrai qu'il y ai aussi les barre de vie/mana (peut etre pas en fait, je ne sais pas encore) et d'autre chose si sa me viens a l'esprit, d'où l'envie de comprendre comment faire pour la reéditer si l'envie se fait sentir...

avec une petite prescision, le cadre, serai il possible d'utiliser une image que je créerai au lieu de l'image de base, afin encore une fois de personalisé l'interface, et pas utiliser que des cadre carré ...

merci =)
0
eu tu pourrai ne pa mennui jute pour cette foi gagner79 le perdan :)
0
gagner79 Messages postés 261 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 20 décembre 2009 40
26 juil. 2008 à 14:17
=begin

Pour faire un cadre, on utilise Window_Base, donc pour créer un truc qui fera bouger un cadre
d'une façon précise il faut aller dans Window_Base, il faudra mettre :
class Window_Base

Appellons cela "nouveau"
il nous faut pouvoir bouger le cadre à partit d'ailleurs que Window_Base, pour cela on doit mettre
"attr_accessor", et comme on a appelé ça "nouveau", il faudra mettre :
attr_accessor :nouveau

Il existe déja une méthode initialize dans le script Window_Base d'RPG Maker, il va donc falloir
la copier, on utilise "alias" pour copier une méthode existante. Après "alias" il faut rajouter le
nom de la méthode qu'on crée, suivi du nom de la méthode qu'on copie, il faudra mettre :
alias nouveau_initialize initialize

on a mis "nouveau_initialize" mais on aurait très bien pu mettre "salut_ca_va" : ça n'a
absolument aucune importance

quand on change la position d'un cadre par exemple, on va dans la méthode "update", il va
donc falloir copier la méthode "update", de la même façcon que pour la méthose "initialize", il
faudra mettre :
alias nouveau_update update

Quand on créera un cadre, il ne faut pas qu'il fasse directement "nouveau", il faut donc le dire
dans la méthode "initialize" qui, je le rappelle, est appelé quand on crée le cadre, il faudra
mettre :
def initialize
self.nouveau = false
end

Rappel : ici, self renvoie au cadre

Il nous faut appeler dedans la méthode qu'on a copié dans la méthode "initialize", il faudra
mettre :
nouveau_initialize

Une méthode est parfois accompagné d'arguments, ici, c'est la cas, et je vous les rappelle :
le 1er : la coordonnée x
le 2ème : la coordonnée y
le 3ème : la largeur
le 4ème : la hauteur
Il va falloir rajouter ces arguments à la méthode "initialize", et comme "nouveau_initialize" est
une copie identique de la méthode "initialize", il faudra mettre :
def initialize(x, y, width, height)
et :
nouveau_initialize(x, y, width, height)


pour le moment on a donc :

class Window_Base
attr_accessor :nouveau
alias nouveau_initialize initialize
alias nouveau_update update
def initialize(x, y, width, height)
nouveau_initialize(x, y, width, height)
self.nouveau = false
end
end


On a fait la moitié !


Il nous donc maintenant décrire ce que va faire le cadre quand on lui dire de faire "nouveau",
il va d'abord falloir mettre "s'il fait nouveau ?", en ruby, voilà ce que ça donne :
if self.nouveau == true
en anglais, "true" veut dire "vrai", donc si on avait remplacé "true" par "false", le cadre ferait
"nouveau" quand on lui dit pas de le faire et ne le ferait pas quand on lui dit de le faire,
fin bref...
Pour information "if self.nouveau == true" c'est se compliquer la vie, car ruby se dit que s'il voit
"if self.nouveau", c'est pareil, on peut donc mettre en français "si nouveau ?", en ruby :
if self.nouveau


Petite parenthèse :
"if" sert à rentrer une condition, donc tout ce qui suit "if " sur cette ligne est vrai ou faux, donc
"true" ou "false". Au départ le cadre ne fait pas "nouveau" donc si on posait la question
"nouveau ?", il dirait non, donc en ruby :
self.nouveau == true
nous renverrait "false", donc "non", ainsi on peut déterminer si le cadre fait "nouveau" ou non.
Fin de la parenthèse.


Si on dit au cadre de faire "nouveau", il le fera continuellement, jusqu'à ce qu'on lui dit d'arrêter,
pour cela on utilise la méthode "update", il faudra mettre :
def update
if self.nouveau
end
end

vous contasterez qu'une condition se termine par un "end"

On peut mettre un "sinon" à une condition, avec "else", par exemple :
if self.nouveau
#s'il fait nouveau
else
#s'il ne fait pas nouveau
end

Ensuite il faut décrire ce que fera le cadre quand on lui dira de faire "nouveau", de "if" à "end",
par exemple, si vous voulez qu'il se mette au milieu de l'écran, il faudra mettre :
self.x = 320 - self.width / 2
self.y = 240 - self.height / 2

Je vous rappelle que l'écran fait 640 de largeur et 480 de hauteur.

N'oubliez pas de rajouter "nouveau_initialize" dans la méthode "update".

Et voilà ! Terminé !


=end


class Window_Base

attr_accessor :nouveau

alias nouveau_initialize initialize
alias nouveau_update update

def initialize(x, y, width, height)
nouveau_initialize(x, y, width, height)
self.nouveau = false
end

def update
if self.nouveau
self.x = 320 - self.width / 2
self.y = 240 - self.height / 2
end
end

end
1
1
gagner79, le 8 aoû 2008 à 15:15:55


earth, le 30 jan 2010 à 12:37:34


je crois que le sujet est fini depuis longtemps ^^'
0
bonjour je cherche a apprendre le ruby mais je n'y arrive pas sur les tutoriel
0
gagner79 Messages postés 261 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 20 décembre 2009 40
5 juil. 2008 à 14:13
alors oui je vois le problème
il fallait créer une méthode update dans la classe Cadre, afin d'y mettre self.contents.draw_text(0, 0, 100, 32, "hello")
la classe Scene_Map sert juste à mettre le cadre sur la map, donc pas besoin d'y toucher, autre chose d'important :
il faut toujours mettre
self.contents = Bitmap.new(width - 32, height - 32)
pour pouvoir écrire quelquechose sur la map, et remplacer width par la largeur que tu as choisi et height par la taille du cadre

de plus je m'étais un peu trompé dans mes explications désolé

voici donc la correction :

class Cadre
def initialize
Window_Base.new(0, 0, 130, 130)
self.contents = Bitmap.new(130 - 32, 130 - 32)
end
def refresh
self.contents.clear #on efface tout
self.contents.draw_text(0, 0, 100, 32, "hello") #on écrit "hello"
end
def update
refresh #renvoie à def refresh
end
end

class Scene_Map
alias cadre_main main
def main
cadre = Cadre.new
cadre_main
cadre.dispose
end

alias cadre_update update
def update
cadre.update
cadre_update
end
end
0
gagner79 Messages postés 261 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 20 décembre 2009 40
8 août 2008 à 15:15
Voici maintenant un truc super important : les variables (pas celles de rpg maker, celles de Ruby)


Il en existe 4 types :

(type : - nom
- exemple
- où on peut l'utiliser)

1er type : - variable locale
- variable
- dans la méthode où on l'a définie uniquement

2ème type : - variable d'instance
- @variable
- dans la classe où on l'a définie uniquement

3ème type : - variable inter-méthodes (ou un truc du genre)
- @@variable
- dans le script où on l'a définie uniquement

4ème type : - variable globale
- $variable
- partout

Notez que le 3ème type est très peu utilisé, vous pouvez l'oublier.

maintenant pour donner une valeur à une variable, c'est simple :

variable1 = 2
là, la variable" variable1" a pour valeur 2 (donc un nombre, en Ruby c'est ce qu'on appelle un INTEGER)

variable2 = "bonjour"
là, la variable" variable2" a pour valeur "bonjour" (donc un nombre, en Ruby c'est ce qu'on appelle un STRING)

variable3 = "2"
là, la variable "variable3" a pour valeur "2" (un string aussi car il est entre guillemets)

variable4 = variable1
là, la variable "variable4" a pour valeur la variable "variable1", donc 2

maintenant pour additioner 2 variables (qui ont pour valeur des INTEGER) :
variable1 = 1
variable2 = 2
variable3 = variable1 + variable2
là, la variable "variable3" a pour valeur 3 (1 + 2)
c'est pareil pour soustraire, multiplier, etc.

maintenant pour faire une concaténation (addition de STRING) :
variable1 = "bonjour" + " monsieur"
là, la variable "variable1" a pour valeur "bonjour monsieur"
donc vous l'avez compris, c'est pareil pour additioner 2 variables qui ont pour valeurs des STRING :
variable1 = "bonjour"
variable2 = " monsieur"
variable3 = variable1 + variable2
la variable "variable3" a donc pour valeur "bonjour monsieur"

C'est tout... pour le moment ! :D
0