Siegfried Admin
Nombre de messages : 1634 Age : 37 Localisation : Valence, France Emploi : Etudiant Loisirs : RPG Making, Musique, dessin, mangas Date d'inscription : 17/05/2006
| Sujet: Partie 3 - Créer une fenêtre ( Window_Base ) Lun 3 Sep - 14:26 | |
| Partie 3 - Créer une fenêtre ( Window_Base )Attention, pour suivre ce tutorial, il est conseillé d'avoir lu les parties précédentes. Nous allons créer une fenêtre sans aucune base ( même s'il est conseillé de partir d'un script existant si on a des trous de mémoire ). Cette fenêtre, nous l'appellerons Window_Test ( originalité quand tu nous tiens... ). Commençons par créer la classe. - Code:
-
class Window_Test < Window_Base end Ensuite, attaquons la méthode initialize. - Code:
-
class Window_Test < Window_Base def initialize end end Complètons initialize ( les commentaires récapitulent ce que fait chaque ligne ). - Code:
-
def initialize # Appel de la méthode initialize de la classe mère (x, y, largeur, hauteur) super(0, 0, 160, 160) # Définition du Bitmap ( contenu de la fenêtre ) self.contents = Bitmap.new(width - 32, height - 32) # Définition de la police d'écriture et de sa taille self.contents.font.name = $fontface self.contents.font.size = $fontsize # Appel de la méthode refresh refresh end Créons la méthode refresh. - Code:
-
class Window_Test < Window_Base def initialize super(0, 0, 160, 160) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $fontface self.contents.font.size = $fontsize refresh end def refresh end end Complètons refresh ( les commentaires récapitulent ce que fait chaque ligne ). - Code:
-
def refresh # Efface le Bitmap ( contenu de la fenêtre ) avant de le metttre à jour self.contents.clear # C'est ici que vous déterminez ce qui sera affiché dans cette fenêtre. # Nous allons afficher un texte : Texte de test self.contents.draw_text(0, 0, 128, 32, "Texte de test") Au final, le script devrait ressembler à ceci : - Code:
-
class Window_Test < Window_Base def initialize super(0, 0, 160, 160) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $fontface self.contents.font.size = $fontsize refresh end def refresh self.contents.clear self.contents.draw_text(0, 0, 128, 32, "Texte de test") end end Maintenant, pour la tester, suivez ces étapes : 1 - Créez un nouveau script, Scene_Test, et collez-y le code qui suit. - Spoiler:
- Code:
-
class Scene_Test def main @test_window = Window_Test.new Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @test_window.dispose end def update @test_window.refresh if Input.trigger?(Input::B) $scene = Scene_Map.new return end end end
2 - Créez un événement et insèrez-y un script ( dernière commande ) et mettez ceci : - Code:
-
$scene = Scene_Test.new Notes-Plus de détails sur les scènes dans un prochain cours, pour le moment nous ne faisons que tester notre fenêtre. -Vous pouvez à tout moment revenir sur la map en appuyant sur B ( Touche annuler ). -Relisez la partie 2 pour modifier un peu votre fenêtre en attendant la suite des cours qui vous apprendra à créer plusieurs types de contenus.
Dernière édition par le Mer 31 Oct - 0:27, édité 1 fois | |
|
Metroid_prime
Nombre de messages : 84 Age : 33 Localisation : Limousin, Limoges Emploi : Lycéen Loisirs : RPG, manga, l'ordinateur, astronomie Date d'inscription : 07/08/2006
| Sujet: Re: Partie 3 - Créer une fenêtre ( Window_Base ) Lun 3 Sep - 15:38 | |
| Très interressant! C'est très utile de savoir faire au moins une fenêtre! | |
|
kill00man
Nombre de messages : 11 Age : 34 Localisation : Un monde détresse Emploi : Préparateur de retraite (nan je dec ) Loisirs : Ca te regarde tant que sa? Date d'inscription : 31/08/2007
| Sujet: Re: Partie 3 - Créer une fenêtre ( Window_Base ) Lun 3 Sep - 18:15 | |
| J'aimerai préciser quelque chose rapidement, vous pouvez définir l'emplacement de la fentre a partir de scene_test : voyez la ligne @test_window = Window_Test.new > @test_window permet allors bcp de chose, comme appelez un attribut de la Window_Test (exemple : @test_window.refresh (qui appailera la commande refresh de window_test) ) Mais sa permet aussi l'emplacement grâce a ces 2 commandes @test_window.x = #ICI LA POSITION X @test_window.y = #ICI LA POSITION Y Si jamais vous fetes sa alors que vous aviez réglez les coordonées x et y dans la Window_Test, alors c la scene qui prend le dessus Bon je pense que siegfried vous détaillera sa mieu que moi dans un futur tuto Voila! ++ | |
|
Siegfried Admin
Nombre de messages : 1634 Age : 37 Localisation : Valence, France Emploi : Etudiant Loisirs : RPG Making, Musique, dessin, mangas Date d'inscription : 17/05/2006
| Sujet: Re: Partie 3 - Créer une fenêtre ( Window_Base ) Lun 3 Sep - 18:56 | |
| Oui, ça sera détaillé dans la partie sur les Scenes. Ca permet d'ailleurs un meilleur positionnement de la fenêtre parfois. | |
|
Contenu sponsorisé
| Sujet: Re: Partie 3 - Créer une fenêtre ( Window_Base ) | |
| |
|