Partagez
Aller en bas
LightNox
LightNox
Membre

Nombre de messages : 1759
Age : 28
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008

RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte) Empty RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte)

le Lun 1 Oct 2012 - 12:42
RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte) Rgss3_10

Bonjour amis maker ^^, aujourd'hui nous allons voir comment afficher un icone dans la fenetre que nous avons vue hier et aussi comment afficher un texte Wink
Cela va vous permettre d'apprendre RGSS3 sans vous prendre la tête, grâce à des cours facile de compréhension.

Mais tout d'abord, nous allons voir ensemble des notions que nous n'avons pas vue hier Smile
Les variables, les classe et les méthodes, ont va les expliqués comme ça se sera plus clair pour vous.

il y a 5 types de variables :

il y a les variables dites "Globale", elle se représente comme ceci => $test et elle sont utilisable partout (je vous le déconseille pour le moment).

il y a les variables dites "De Classe", elle se représente comme ceci => @test et elle sont accessible dans la class ou l'on travaille.

il y a les variables dites "Locale", elle se représente comme ceci => test (toute en minuscule) elle sont utilisable dans le bloc de déclaration.

il y a les variables dites "Constante", elle se représente comme ceci => Test => Test (la première lettre doit être une majuscule) une fois déclarer et initialiser avec une valeur elle sont inchangeable.

il y a les variables dites "De Classe Partager", elle se représente comme ceci => @@test elle sont accessible par tous les objets d'une même classe.

Class : elle se représente par le mot clé "class" et se termine par un "end" => Une classe est une représentation abstraite d'une chose présentant des propriétés et des fonctionnalités. Prenons un exemple : les plans d'une voitures sont une classe, c'est abstrait, et l'on ne peut pas la conduire. Il faut passer par un "constructeur" pour utiliser ces plans et en faire un objet concret exploitable.

Méthode : elle se représente par le mot clé "def" et se termine par un "end" => une fois qu'une méthode et défini on a pas besoin de la redéfinir 100000x pour la réutiliser, cela permet de gagner en lisibilité et en place dans notre code.


/1\Comment afficher un icône dans une fenêtre ? :

On va mettre le code suivant dans la méthode "refresh" de votre window_test, juste en dessous de "self.contents.clear"
donc :
Code:
 
    bitmap = Cache.system("Iconset")
    icon_index = 260
    icon_index2 = 270
    rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
    rect2 = Rect.new(icon_index2 % 16 * 24, icon_index2 / 16 * 24, 24, 24)
    contents.blt(0, 0, bitmap, rect)
    contents.blt(270, 0, bitmap, rect2)

ceci :
Code:
bitmap = Cache.system("Iconset")
Ce code permet de récupérer dans le dossier system, l'iconset.
l'Iconset pour ceux qui ne connaissent pas, c'est une planche d’icône ou les icônes font 16x24 pixel, ces icônes permettent d'imager les objets que vous pourriez posséder dans votre jeu.

ceci :
Code:
icon_index = 260 et icon_index2 = 270
ce code permet de définir icône qui va être selectionner.

ceci :
Code:
 rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
et  rect2 = Rect.new(icon_index2 % 16 * 24, icon_index2 / 16 * 24, 24, 24)
ce code permet de faire un calcul qui va permettre de récupérer la position d'un icône dans l'iconset.

ceci :
Code:
   
    contents.blt(0, 0, bitmap, rect) et
    contents.blt(270, 0, bitmap, rect2)
ce code c'est un transfert de bloc d'un bitmap vers un autre et rect, correspond au carré découpé dans le bitmap, et 0, 0 la position (x, y) où il sera collé.

Voilà pour l'affichage d'un icône ^^.


/2\Comment afficher un texte dans une fenêtre ? :

Ne vous inquiétez pas pour afficher un texte c'est beaucoup plus simple x)

il vous suffit de mettre en dessous des deux "contents.blt" ceci :
Code:

    contents.draw_text(25, 0, 300, 25, "Test 1")
    contents.draw_text(300, 0, 300, 25, "Test 2")
ce code permet d'afficher un texte dans une fenêtre ou les premières coordonnées correspondent au (x, y, width, height) c'est a dire :
x et y les coordonnées de positionnement du texte;
width et height les coordonnées de positionnement sur la largeur et la hauteur de la fenêtre.

ce qui vous donne comme code entier :
Code:

#-------------------------------------------------------------------------------
class Window_Test < Window_Base
#------------------------------------------------------------------------------- 
  def initialize
    super(0, 0, Graphics.width, Graphics.height)
    refresh
  end
#------------------------------------------------------------------------------- 
  def refresh
    self.contents.clear
    bitmap = Cache.system("Iconset")
    icon_index = 260
    icon_index2 = 270
    rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
    rect2 = Rect.new(icon_index2 % 16 * 24, icon_index2 / 16 * 24, 24, 24)
    contents.blt(0, 0, bitmap, rect)
    contents.blt(270, 0, bitmap, rect2)
    contents.draw_text(25, 0, 300, 25, "Test 1")
    contents.draw_text(300, 0, 300, 25, "Test 2")
  end
end
#-------------------------------------------------------------------------------
class Scene_Test < Scene_Base
#------------------------------------------------------------------------------- 
  def start
    super
    create_window_test
  end
#------------------------------------------------------------------------------- 
  def update
    super
    return_scene if Input.trigger?(:B)
    if Input.trigger?(:B)
    Sound.play_cancel
  end
  end
#------------------------------------------------------------------------------- 
  def create_window_test
    @window_test = Window_Test.new
  end
end
#-------------------------------------------------------------------------------

Voilà c'est la fin du cour sur l'affichage d'un icône et d'un texte sur une fenêtre de base.

A bientôt les nuls Wink








Dernière édition par LightNox le Lun 1 Oct 2012 - 17:15, édité 2 fois
Yasan
Yasan
Membre

Nombre de messages : 149
Age : 33
Distinction : aucune
Date d'inscription : 18/01/2011

RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte) Empty Re: RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte)

le Lun 1 Oct 2012 - 13:25
Merci pour le tuto ^^

Donc, l'affichage d'éléments se fait dans la méthode Refresh puisque c'est celle qui est vérifiée à chaque fois, c'est ça ?

Par contre, la formule qui permet de récupérer le bloc correspondant à notre icône dans la bitmap, c'est une formule qu'on utilise à chaque fois qu'on veut utiliser une icône dans une fenêtre ? Et si, imaginons, on veut faire apparaître un bloc d'un charset, la formule change j'imagine mais comment on fait pour la connaitre ?
LightNox
LightNox
Membre

Nombre de messages : 1759
Age : 28
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008

RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte) Empty Re: RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte)

le Lun 1 Oct 2012 - 13:28
Donc, l'affichage d'éléments se fait dans la méthode Refresh puisque c'est celle qui est vérifiée à chaque fois, c'est ça ?

Oui c'est ça vue que dans la méthode initialize, le refresh et appeler ^^

Par contre, la formule qui permet de récupérer le bloc correspondant à notre icône dans la bitmap, c'est une formule qu'on utilise à chaque fois qu'on veut utiliser une icône dans une fenêtre ?

Oui cette formule permet de récupérer l'icône voulu grâce a l'index. Mais il y a plus simple(mais plus long a expliquer ^^) mais sa je l'expliquerais plus tard dans un autre cour ^^.

Et si, imaginons, on veut faire apparaître un bloc d'un charset, la formule change j'imagine mais comment on fait pour la connaitre ?

Ahah cette formule je vous la donnerais dans le prochain cour mais il va falloir patienter un peu x).
tonyryu
tonyryu
Membre

Nombre de messages : 895
Age : 39
Localisation : Près de Nantes
Distinction : aucune
Date d'inscription : 27/05/2010
http://www.tonyryudev.com

RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte) Empty Re: RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte)

le Lun 1 Oct 2012 - 14:51
@LightNox a écrit:
Donc, l'affichage d'éléments se fait dans la méthode Refresh puisque c'est celle qui est vérifiée à chaque fois, c'est ça ?

Oui c'est ça vue que dans la méthode initialize, le refresh et appeler ^^

Attention, la méthode refresh, n'a pour objectif, par convention, de dessiner sur l'objet Bitmap "contents" de la fenêtre. Et ne doit surtout pas être appelé à chaque boucle. Cette méthode est appelé uniquement dans le cas où ce qui est affiché doit être modifié.
Yasan
Yasan
Membre

Nombre de messages : 149
Age : 33
Distinction : aucune
Date d'inscription : 18/01/2011

RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte) Empty Re: RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte)

le Lun 1 Oct 2012 - 16:32
Tu veux dire que si, par exemple, on intègre une image de fond fixe pour toute la scène, on ne l'intègre pas dans Refresh, mais dans Initialize (par exemple), mais que par contre, une image qui changerais, genre une icône d'armure qui change selon ce que tu sélectionnes, c'est dans Refresh.

J'ai bon ?
Gummy
Gummy
Staffeux retraité

Nombre de messages : 2666
Age : 28
Localisation : Belgique
Distinction : Modérateur imprévisible

Papy Lolo' [Nabots Nimousse]


Date d'inscription : 27/01/2008

RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte) Empty Re: RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte)

le Lun 1 Oct 2012 - 19:14
C'est ça Yasan, tout en prenant soin de vérifier qu'il est nécessaire de changer l'image dans la boucle en cours, pour éviter des opérations inutiles et optimiser l'exécution bien entendu.
LightNox
LightNox
Membre

Nombre de messages : 1759
Age : 28
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008

RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte) Empty Re: RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte)

le Lun 1 Oct 2012 - 19:45
Oui c'est sur mais la pour l'exemple j'ai préférer le mettre dans le refresh ^^

mais en temps normal oui la méthode refresh sert a rafraichir le bitmap si une information et modifier en autre la on modifie pas d'information donc j'ai préférer faire comme ça ^^
Grimimi
Grimimi
Membre

Nombre de messages : 32
Age : 22
Localisation : Belgique
Distinction : aucune
Date d'inscription : 30/08/2012
http://www.biloucorp.com/BCW/Grim/

RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte) Empty Re: RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte)

le Mer 3 Oct 2012 - 17:14
Je pense que pour éviter la confusion @test peut être appelé une variable d'instance et @@test une variable de classe. In Fact, une classe en ruby est un Objet de type "Class".
Par exemple:
Code:

class Test
  p self
end
dans ce contexte, self = Test.
Je pense tout de même que, bien que je salue vraiment ton initiative, il faudrait peut être expliquer en long en large ce qu'est l'orienté objet (orienté classe) et comment ça fonctionne?
LightNox
LightNox
Membre

Nombre de messages : 1759
Age : 28
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008

RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte) Empty Re: RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte)

le Mer 3 Oct 2012 - 19:35
oui tu as raison grimimi je ferais une petite parenthèse sur ce sujet dans le prochain cour ^^
mais je ne suis pas encore a parler des variables de classe partager comme dans le script Window_MenuCommand
mais j'y viendrais bientôt je pense Wink

merci pour le compliment Smile
kuro01
kuro01
Membre

Nombre de messages : 4
Distinction : aucune
Date d'inscription : 10/12/2012

RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte) Empty Re: RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte)

le Lun 17 Déc 2012 - 23:42
salut, j'ai commencé a suivre tes cours ce qui me permet de comprendre un peu mieux comment fonctionnent les scripts. Merci beaucoup et vivement le prochain cours Smile !
LightNox
LightNox
Membre

Nombre de messages : 1759
Age : 28
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008

RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte) Empty Re: RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte)

le Lun 17 Déc 2012 - 23:55
C'est un plaisir kuro ^^

Le problème c'est qui n'y aura pas de cour sur le rgss3 avant l'année prochaine x)
Mais dès que j'aurais fait le 3ème cour je ferais aussi une feuille d'exercice pratique sur le rgss3 Wink
Medal'
Medal'
Membre

Nombre de messages : 412
Age : 22
Localisation : Alsace
Distinction : aucune
Date d'inscription : 23/12/2012

RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte) Empty Re: RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte)

le Lun 24 Déc 2012 - 12:26
Cool, ces cours, depuis le temps que j'attendais ça : )

Vivement la partie 3 : )
Meinfist
Meinfist
Membre

Nombre de messages : 47
Age : 26
Localisation : France
Distinction : aucune
Date d'inscription : 07/07/2013
http://www.zeforiu.fr

RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte) Empty Re: RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte)

le Dim 7 Juil 2013 - 13:28
Merci pour tes cours Smile
Je vois que tu passes toujours sur le forum, à quand un chapitre 3? Very Happy
Medal'
Medal'
Membre

Nombre de messages : 412
Age : 22
Localisation : Alsace
Distinction : aucune
Date d'inscription : 23/12/2012

RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte) Empty Re: RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte)

le Ven 23 Aoû 2013 - 21:26
Tu est le seul qui fait des cours sur le RGSS 3.
Pour l'instant je révise mais c'est pour quand la partie 3 ? Smile
Contenu sponsorisé

RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte) Empty Re: RGSS3 pour les nul (Chapitre 2: Affichage d'un Icone et d'un Texte)

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