[ruby] Créer des jeux sur rpg maker

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
Configuration: Windows XP
Firefox 1.5.0.9

13 réponses

  1. 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
    1. 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
    2. Bonjour , moi je fais pour tester le jeu et il me met "??? error04??"
      0
    3. gné ? ( Winner_01 )
      0
  2. 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
    1. bonjour je cherche a apprendre le ruby mais je n'y arrive pas sur les tutoriel
      0
      1. 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
        1. d:
          0
      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
        1. 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
          1. 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
        2. 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
          1. 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
            1. 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
            2. @CephiriusQu'est-ce que tu veux faire précisément dans le cadre ?
              0
            3. @gagner79en 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
            4. eu tu pourrai ne pa mennui jute pour cette foi gagner79 le perdan :)
              0
          2. 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
            1. 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
          3. =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. 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