kill00man > Grand artiste
Nombre de messages : 285 Age : 43 Localisation : Derrière-toi, prêt a t'assassiner ! Avez vous RPGMXP ? : On dit RMXP et oui, biensûr que je l'ai :p Quels sont vos projets ? : The Strom Of Chrono Date d'inscription : 03/05/2007
Fiche Créateur Points de Créativité: (0/50) Commentaires:
| Sujet: [Ruby] 2/La Window ! Mer 30 Mai - 11:06 | |
| Rebonjour! INFO:vous verez souvent [bidule], il faut remplacer par bidule enfin vous comprenderez en réflechissant XD
2/La Window, les 3/4 des scripts
Attention, on commence la window avec intêret! Petit exercice a la fin^^ N'OUBLIEZ PAS QU'UNE WINDOW COMMENCE PAR UNE CLASS ET CE FINIT PAR UN END POUR D2FINIR LA FIN DE LA CLASS !!
2.1/L'initialisation
Dans le précédent tuto je vous parlais de la commande def initialize! Il est temps de la mettre en pratique! Voici en détail la formation de cette commande! - Code:
-
def initialize #A partir de là sa commence! super ([emplacement X], [emplacement Y], [Longueur], [Hauteur]) #créationde la fenetre plus emplacement! self.contents = Bitmap.new(width - 32, height - 32) #obligé de la metttre--' 'self.contents.font.name = [Nom de l'écriture] #si vous voulez mettre l'écriture définie dans Main, mettez $fontface ;) self.contents.font.size = [Taille de l'écriture] #idem qu'au dessus mais avec $fontsize ;) refresh end
Bon, là c'est le général lol Vous pourez apercevoir ceci: - Code:
-
def initialize super(x,y,l,h) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $fontface self.contents.font.size = $fontsize self.opacity = [Opacité] #Info: l'opacité maximum est 255, la minimum est 0... une bonne pocité est 160! ceci est l'opactié du contour self.back_opacity= [Opacité] #Idem que plus haut a part que là c'est le fond de la fenetre ;) self.z = [Hauteur Calque] #Arg! vous vous demandez ce que c'est ce z! voilà, il se trouve que pour des effets d'estéthiques, on peut vouloir superposé 2 fenêtres... voir plus bas ;) refresh end Bon, vous avez bien remarqué cet intrut, le Z! Avez vous déjà vu le script Menu FF7? avez-vous remarquez les superpositions des windows? Z sert a sa! la hauteur calque! 100 c'est d'origfine je crois! 110 permettra de superposé la window a une window de hauteur de calque inférieur! il n'y a pas de limite de calque^^ vous pouvez mettre 999999999 RMXP vous l'éxecutera a cet hauteur! Maintenant que nous avons vu l'initialisation de BASE, passons, au mystérieux refresh.
2.2/La Refresh party XD
- Code:
-
def refresh self.contents.clear #ici ce qu'on veut afficher(si on veut une window vide on met rien ^^) end
Voici quelque chose de long a expliquer... commençons par quelque chose de simple en refresh, comme l'affichage d'un texte! - Code:
-
def refresh self.contents.clear #bon sa je sais pas trop c'est quoi XD en tout cas c'est oblgatoire^^ self.contents.font.color = normal_color #la couleur... self.contents.draw_text(4, 0, 120, 32,"MONEY")#La on affiche le texte! end
self.contents.draw_text(4, 0, 120, 32,"MONEY") Les choses a retenir sont self.contents.draw_text(x, y, l, h,"[text a afficher]") Je vous conseille vivement de mettre les longueur et hauteur a la même taille que la taille de la window ^^
Bon passons a plus compliqué! Comme l'affichage de la contenu d'une variable! - Code:
-
self.contents.draw_text(x, y, l, h, $game_variables[ID_DE_LA_VARIABLE].to_s)#ne pas enlever les [] Rien de bien compliqué non? CE QUI VOUS SERVIRA ET DANS LA BASE DU RGSS!
2.3/Excercice "simple"
Et maintenant, place a l'excercice du tuto! Votre mission, si vous l'acceptez, et de faire un script permettant d'afficher... CECI:
Pour cela je dois vous informer de 2,3 trucs ;) -Les couleurs a utilisés sont normal_color et system_color ;) -Utilisez le Sujet Les bases du RGSS pour vous aidez dans l'affichage des informations -Pour l'afficher, il va falloir mettre en praique se que vous avez compris dans le précédent tuto! Allez dans Scene_Map, allez vers la ligne 15 et... devinez quoi! Oui Oui! il va falloir utilisé les @! mettez @leraccrourciquevousvoulez = lenomdelaclassdevotrescript.new! si vous voulez que sa s'efface quand un autre script arrive, allez ligne 37 et insérez @leraccrourciquevousvoulez.dispose! Postez vos résultats et si vous n'y arrivez pas, voici le script:
- Spoiler:
class InfoPerso<Window_Base def initialize super (0, 0, 640, 60) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = "Times New Roman" self.contents.font.size = 18 self.opacity = 160 self.back_opacity = 160 refresh end def refresh self.contents.clear self.contents.font.color=system_color self.contents.draw_text(0,-15,640,60,"Nom du Héro : ") self.contents.font.color = normal_color self.contents.draw_text(90,-15,640,60,$data_actors[1].name) self.contents.font.color=system_color self.contents.draw_text(150,-15,640,60,"Classe du Héro : ") self.contents.font.color = normal_color self.contents.draw_text(250,-15,640,60,$data_classes[$data_actors[1].class_id].name) self.contents.font.size=22 self.contents.font.color=system_color self.contents.draw_text(400,-15,640,60,"J'ai réussi!!!!") end end 2.4/Les couleurs
Bon je vais vous expliquer les couleurs vite fait bien fait^^ les couleur se font sou cet ordre 000,000,000,000 les 3 premiers 0 : Le Rouge les 3 prochains: Le Vert Les 3 suivants: Le Bleu les 3 derniers : La Saturation Pour trouver vos couleurs fait un event avec modifier la teinte de l'écran, vous trouverez assez vite votre couleur ;)
Bon voila c'est un court cours XD! Maitenant que vous savez faire une window... pourquoi pas un CMS? ++
PS:Si jamais vous n'avez pas compris ce cour, en voici un autre écris par M@th:- Spoiler:
1)Qu'est ce qu'une window?Bonne question! Elle est pas si bête que l'on pourrait le croire: Qu'est ce que c'est que ça? et ça? c'est quoi ce bidule? ^^Bon, pour répondre a cette question, je vais faire simple. Il s'agit d'une fenetre contenant des données quelconques par exemples, le nombre de pas, pour cette exemple, il faut aller voir du coté du script: Window_Steps Script Window_Steps - Code:
-
#============================================================================== # ■ Window_Steps #------------------------------------------------------------------------------ # メニュー画面で歩数を表示するウィンドウです。 #==============================================================================
class Window_Steps < Window_Base #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize super(0, 0, 160, 96) 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.font.color = system_color self.contents.draw_text(4, 0, 120, 32, "Nombre de pas :") self.contents.font.color = normal_color self.contents.draw_text(4, 32, 120, 32, $game_party.steps.to_s, 2) end end
Voilà la window qui s'occupe d'afficher le nombre de pas! Hé oui, le script est minuscule, c'est aussi le plus simple a analyser puis puisque c'est un cours, autant y aller jusqu'au bout, passons a l'analyse! ça tombe bien c'est un window en plus! vous allez voir, c'est loin d'etre difficile! [size=18]2)L'analyse d'un script : Window_StepsBah, vous en faite une tête! Je sais, vous etes un vrai noob mais ce n'est pas trés dur, puis je suis là pour vous guider! ^^ Aller, c'est partie, 1er ligne de code: - Code:
-
class Window_Steps < Window_Base ça, c'est trés important pour les Window_truc en fait tu peut remarquer le signe "<". Cela veut juste dire que le script Window_Steps est une sous classe du Script Window_Base. Nota: Une sous classe prend en compte toutes les variables,etc... de sa "mére", dans notre cas il s'agit de Window_Base, mais de toutes façon, Window_base sera la mére de toutes les Window_truc (filles). Cependant, Window_base ne pourra pas prendre en compte les variables non définie dans Window_base appartenant a une de ces Window_Filles, ainsi, si vous voulez integrer une variable qui n'est pas integrer dans Window_base dans une de vos Window_Filles, vous devrez la définir. (pas de chance)Passons à la suite: - Code:
-
def initialize super(0, 0, 160, 96) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $fontface self.contents.font.size = $fontsize refresh end Aie, ça se corse, mais non, je rigole, je pense que là encore, ça devrait aller! Tout d'abord, je vais vous expliquer cette fonction: - Code:
-
def initialize ... end Ceci est l'initialisation de la fenetre, ça sert juste à la creer! def, ça va dire que nous la définissons. La suite: - Code:
-
super(0, 0, 160, 96) ça, c'est super important! ^^ La fonction super gére les données de position de la fentre par rapport a l'écran de cette maniere : - Code:
-
super(x, y, largeur, hauteur) x et y sont les coordonnées du coin haut-gauche du rectangle qui contient la fenêtre. largeur correspond a la largeur de la fenêtre. hauteur correspond a la hauteur de la fenêtre. Passons a la suite: - Code:
-
self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $fontface self.contents.font.size = $fontsize refresh Bon, là, ce n'est pas trés compliqué, la premiere ligne: - Code:
-
self.contents = Bitmap.new(width - 32, height - 32) Je ne sait pas à quoi ça correspond mais en tout cas, c'est obligatoire pour une window! Si cette ligne ne figure pas dans votre script, il ne fonctionnera pas. Les trois lignes suivantes: - Code:
-
self.contents.font.name = $fontface self.contents.font.size = $fontsize refresh Bon, c'est pas dur à comprendre: - Code:
-
self.contents.font.name = $fontface Sert à la police! Vous pouvez remplacer $fonface par le nom de police que vous voulez entre guillemets. Par exemple: - Code:
-
self.contents.font.name = "Arial" Pareil pour la ligne suivante, sauf, quelle gére la taille de la police. - Code:
-
self.contents.font.size = $fontsize Vous pouvait également entré une valeur mais ne mettez pas les guillemets Exemple: - Code:
-
self.contents.font.size = 25 Tant qu'as - Code:
-
refresh , cela sert a "rafraichir la variable" ( Verifier la fonction initialize en quelque sorte), il s'agit d'une fonction qui est jamais défini dans Window_Base et qu'il faudras donc tout le temps définir! ^^ Voilà pour cette 1er partie d'analyse, en gros, quand vous crérez votre Window, vous n'aurez qu'as copié ceci en modifiant juste la fonction super, et a la rigueur, la taille et le type de la police... - Code:
-
def initialize super(x, y, largeur, hauteur) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $fontface #peut etre modifié self.contents.font.size = $fontsize #peut etre modifié refresh end 2nd partie - Code:
-
def refresh self.contents.clear self.contents.font.color = system_color self.contents.draw_text(4, 0, 120, 32, "Nombre de pas :") self.contents.font.color = normal_color self.contents.draw_text(4, 32, 120, 32, $game_party.steps.to_s, 2) end end Arf, nous y voici, nous allons définir la fonction refresh! - Code:
-
def refresh Pour dire que nous définissons la fonction de rafraichissemnt de variable - Code:
-
self.contents.font.color = system_color ça c'est pour dire que la couleur des textes que nous allons inscrire aprés sera la couleur system, c'est à dire le bleu. - Code:
-
self.contents.draw_text(4, 0, 120, 32, "Nombre de pas :") Ca y est! On passe a l'affichage! Hé oui, maintenant que la fenetre a été créée (voir def initialize), voilà la commande a analysé pour l'affichage: - Code:
-
self.contents.draw_text(x, y, largeur, hauteur, "Texte a inserer ici") En gros, pour inserer un texte dans une fenêtre, il faut insérer: seff.contents.draw_text Entre parentheses, on fait presque comme dans la fonction super à quelque chose prés avant de fermer les parentheses, il faut mettre une virgule, on ouvre les guillemets et on insere le texte puis on ferme les guillemets. - Code:
-
self.contents.font.color = normal_color ça c'est pour dire que la couleur des textes que nous allons inscrire aprés sera la couleur normal, c'est à dire le blanc. - Code:
-
self.contents.draw_text(4, 32, 120, 32, $game_party.steps.to_s, 2) Comme ci dessus a une chose prés, au lieu de mettre un text nous inserons une variable: - Code:
-
$game_party.steps C'est la variable qui gére le nombre de pas, a chaque pas que le joueur réalise la valeur gagne 1 valeur supplementaire, c'est de l'incrementation (+1)) - Code:
-
.to_s, 2 .to_s singnifie to string, c'est pour afficher la variable en caractére( 0à9, aàz) Le - Code:
-
2 , je sais pas, mais moi, je le met toujours, au ca où! ^^ 3)Faire sa Window - conclusion:Maintenant, a vous de jouer! C'est simple, je vous fait le code au cas où vous n'ayez pas trés bien compris ^^ - Code:
-
#============================================================================== # ■ Window_Truc #------------------------------------------------------------------------------ # メニュー画面で歩数を表示するウィンドウです。 #==============================================================================
class Window_Truc < Window_Base #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize#définition de la fonction initialize super(x, y, largeur, hauteur)#à définir self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $fontface#peut etre édité self.contents.font.size = $fontsize#peut etre édité refresh end #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- def refresh#définition de la fonction refresh self.contents.clear#remet la variable a zéro self.contents.font.color = system_color#couleur bleu (le texte que vous insererez a la suite de cette commande sera bleu)
(ici, inserez du text ou une variable ou une image!) self.contents.font.color = normal_color#couleur blanc (le texte que vous insererez a la suite de cette commande sera blanc)
(ici, inserez du text ou une variable ou une image!)
end#fin de la fonction refresh end#fin de l'affichage
Dernière édition par le Sam 2 Juin - 14:24, édité 1 fois | |
|