Aller en bas
Dany
Dany
Membre

Nombre de messages : 784
Age : 27
Distinction : aucune
Date d'inscription : 16/11/2010
http://gamers-studio.forumofficiel.fr/

Apprendre le RGSS3 {0}: Les bases! Empty Apprendre le RGSS3 {0}: Les bases!

Mar 17 Fév 2015 - 19:44
J'aurais dû commencer le premier chapitre par ce chapitre là.

Chapitre 0: Les Bases!
Définitions
Structure d'un Script:
C'est comme-ci vous créer une maison(class) qui contient des habitants (des fontions) auquel vont être associé des tâches qui consisterons principalement en la modification des variables.

Les variables:
Les variables a pour but de conserver une donnée grâce a un objet.
Exemple: Texte = "Salut tout le monde"

  • Les variables simples

image,text,variable1,...

Ce sont des variables de courte durée, elles ne servent que durant une méthode et ne sont pas enregistrer.


  • Les variables d'instance

@image,@text,@variable1,...

Ce sont les plus courant, ce sont celle qui sont enregistrer et elles sont utilisable dans une class entier.


  • Les variables de class

@@image,@@text,@@variable1,...

Ce sont des variable d'instance particulière car elles peuvent être lu depuis une autre class.


  • Les variables de global

$image,$text,$variable1,...

Ce sont des variables utilisables depuis n'importe quelle script.


  • Les variables constant

IMAGE,TEXT,VARIABLE1,...

Ce sont des valeurs fixe que l'on définit dans le script (elles sont utilisé la plupart du temps pour faire les configurations de script).
Elle peuvent être lu en dehors d'une class de la même manière qu'une variable de class.

Je complétera, par la suite.
Et merci a Vincent_26!
Zangther
Zangther
Membre

Nombre de messages : 913
Distinction : aucune
Date d'inscription : 06/02/2013

Apprendre le RGSS3 {0}: Les bases! Empty Re: Apprendre le RGSS3 {0}: Les bases!

Jeu 19 Fév 2015 - 23:17
Dany a écrit:

  • Les variables d'instance

@image,@text,@variable1,...

Ce sont les plus courant, ce sont celle qui sont enregistrer et elles sont utilisable dans une class entier.

C'est pas vrai. Les variables d'instance ont comme porté l'instance en cours. Pas la classe.

Dany a écrit:

  • Les variables de class

@@image,@@text,@@variable1,...

Ce sont des variable d'instance particulière car elles peuvent être lu depuis une autre class.

C'est pas vrai. Tu ne peux les lire depuis une autre classe surement si tu as défini les accesseurs.



Comme la dernière fois, avant de faire un cours il faut se documenter et vérifier ce que l'on dit. J'avais des doutes sur ce que tu faisais, j'ai ouvert une console ruby et j'ai eu ma confirmation. C'est tout simple et ça prend deux minutes même pas.
D'ailleurs, si tu pouvais te relire et éliminer tes fautes d'orthographe ce serait bien. Parce que là c'est bien triste.
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 28
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Apprendre le RGSS3 {0}: Les bases! Empty Re: Apprendre le RGSS3 {0}: Les bases!

Jeu 19 Fév 2015 - 23:30
Qu'appel tu une instance zangther ? perso j'ai toujours vue les variables de ce type @machin comme des variables utilisable dans une class

Sache que je n'ai jamais pris de cours d'info ni fait de programmation autre que pour RM
Zangther
Zangther
Membre

Nombre de messages : 913
Distinction : aucune
Date d'inscription : 06/02/2013

Apprendre le RGSS3 {0}: Les bases! Empty Re: Apprendre le RGSS3 {0}: Les bases!

Sam 21 Fév 2015 - 21:46
Une classe permet de créer des objets. Quand on crée un objet, on appelle ça une instance. Je pense que vous avez compris le @ mais vous n'utilisez pas les bons termes.

J'vais donner un exemple, histoire d'être clair.

Code:
class Flan

  @@all = []
  attr_reader :gout

  def initialize(gout)
    @gout = gout
    @@all << self
  end
end

Voila notre classe de base. Flan. On va d'abord créer quelques objets.
Code:
irb(main):029:0> flan_fraise = Flan.new(:fraise)
=> #<Flan:0x2697e58 @gout=:fraise>
irb(main):030:0> flan_by = Flan.new(:banane)
=> #<Flan:0x26d0468 @gout=:banane>
irb(main):031:0> flan_broise = Flan.new(:frambroise)
=> #<Flan:0x26c9040 @gout=:frambroise>

Donc, dans chacun de nos instances de Flan, il y a une variable d'instance qui s'appelle gout. Si ou fait flan.gout, on aura la valeur propre à chaque flan. C'est le principe d'une variable d'instance : propre à chaque objet différent.

Maintenant, il y a la variable de classe signalée par @@. Celle là n'est pas propre à chaque objet. Elle est commune à tous les objets d'une même classe. Vous avez vu que plus haut, dans la méthode initialize, on remplissait cette fameuse variable.
On va voir ça avec un petit ajout dans la classe Flan :
Code:
class Flan
  def all
    @@all
  end
end
Maintenant on va pouvoir voir ce qu'il y a à l'intérieur.

Code:
irb(main):045:0> flan_fraise.all
=> [#<Flan:0x2697e58 @gout=:fraise>, #<Flan:0x26d0468 @gout=:banane>, #<Flan:0x26c9040 @gout=:frambroise>]
irb(main):046:0> flan_by.all
=> [#<Flan:0x2697e58 @gout=:fraise>, #<Flan:0x26d0468 @gout=:banane>, #<Flan:0x26c9040 @gout=:frambroise>]

Il y a la même chose. C'est parce que le contenu des variable de classe est commun. Par contre, si une autre classe essaye d'un accéder, bah elle ne peut pas (a moins d'avoir mis en place des accesseurs).


Je veux bien que vous n'ayez jamais eu de cours de programmation mais quand vous affirmez des trucs essayez de faire un minimum de recherche avant. Après, c'est pas la peine de dire "oui mais on se comprends" parce que non. C'est comme si, dans le domaine de la musique, j’appelais un un do.

Surtout quand on essaye de donner des cours.
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 28
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Apprendre le RGSS3 {0}: Les bases! Empty Re: Apprendre le RGSS3 {0}: Les bases!

Dim 22 Fév 2015 - 15:34
Oui dans ce cas c'est un problème de terme ^^ merci pour les précisions en tout cas
Contenu sponsorisé

Apprendre le RGSS3 {0}: Les bases! Empty Re: Apprendre le RGSS3 {0}: Les bases!

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum