Partie 2 - Modifier une fenêtre ( Window_Base )Nous allons commencer par les trois scripts les plus simples :
Window_PlayTime, Window_Steps et Window_Gold.
Ces 3 scripts sont les fenêtres les plus faciles à comprendre dans celles présentes par défaut dans RPG Maker XP.
Commençons par Window_Gold.
- Code:
-
#==============================================================================
# ■ Window_Gold
#------------------------------------------------------------------------------
# ゴールドを表示するウィンドウです。
#==============================================================================
class Window_Gold < Window_Base
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
super(0, 0, 160, 64)
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
cx = contents.text_size($data_system.words.gold).width
self.contents.font.color = normal_color
self.contents.draw_text(4, 0, 120-cx-2, 32, $game_party.gold.to_s, 2)
self.contents.font.color = system_color
self.contents.draw_text(124-cx, 0, cx, 32, $data_system.words.gold, 2)
end
end
Nous allons maintenant nous pencher sur les lignes utiles à modifier.
ContenuLigne 12 : Placement et dimensions de la fenêtre - Code:
-
super(0, 0, 160, 64)
Les fenêtres les plus basiques fonctionnent comme suit : super(x, y, w, h)
x = Coordonnée horizontale de la fenêtre
y = Coordonnée verticale de la fenêtre
w = Largeur
h = Hauteur
Ligne 25 : Valeur de l'argent en possession - Code:
-
self.contents.draw_text(4, 0, 120-cx-2, 32, $game_party.gold.to_s, 2)
La méthode draw_text permet d'écrire un texte, mémorisez-la bien.
Elle fonctionne comme suit :
self.contents.draw_text(x, y, w, h, texte, alignement)
x = Coordonnée horizontale du texte
y = Coordonnée verticale du texte
w = Largeur
h = Hauteur
texte = texte affiché
Ici, le texte affiché est la valeur de l'argent détenu par l'équipe, stockée dans $game_party.gold.
Mais cette variable n'est pas faite pour être affichée en texte, il faut donc la convertir en "string" et ajoutant ".to_s" derrière.
Vous pouvez ainsi afficher une variable ( en rajoutant ".to_s" derrière ), ou mettre n'importe quel texte entre guillements comme suit :
- Code:
-
self.contents.draw_text(x, y, w, h, "Texte", alignement)
alignement = placement du texte dans la largeur définie par w.
0 = aligné à gauche
1 = centré
2 = aligné à droite
A savoir que si vous ne mettez pas d'alignment, la valeur par défaut est 0.
self.contents.draw_text(x, y, w, h, texte) affichera donc un texte à gauche.
Ligne 27 : Nom de la monnaieself.contents.draw_text(124-cx, 0, cx, 32, $data_system.words.gold, 2)
Même chose qu'au-dessus, sauf qu'ici, le texte affiché est celui défini dans la base de données ( onglet Système ), par défaut G.
StyleLignes 14 et 15 : Police et Taille de l'écriture - Code:
-
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
$fontface et $fontsize sont les variables globales qui définsissent respectivement la police d'écriture du jeu et sa taille.
Vous pouvez les modifier dans Main.
Cependant, si vous voulez que la fenêtre que vous modifiez ait une police spécifique, vous pouvez remplacer ces valeurs.
Si par exemple vous voulez la police Times New Roman en taille 20, mettez :
- Code:
-
self.contents.font.name = "Times New Roman"
self.contents.font.size = 20
Lignes 24 et 26 : Couleur de l'écriture - Code:
-
self.contents.font.color = normal_color
self.contents.font.color = system_color
self.contents.font.color est ce qui définit la couleur de l'écriture.
normal_color et system_color sont 2 méthodes définies dans Window_Base.
normal_color = couleur normale ( blanche par défaut )
system_color = couleur système ( bleue par défaut )
disabled_color = couleur de désactivation ( grise par défaut )
crisis_color = couleur des HP quand ils sont bas ( jaune par défaut )
knockout_color = couleur des HP quand ils sont à 0 ( rouge par défaut )
Pour définir une nouvelle couleur, utilisez :
self.contents.font.color = Color.new(r,g,b,o)
r = rouge
g = vert
b = bleu
o = opacité
Pour obtenir la couleur blanche : Color.new(255, 255, 255, 255)
Pour obtenir la couleur noire : Color.new(0, 0, 0, 255)
( Je vous conseille de trouver un tutorial sur le code de couleurs RGB sur le net ).
Les astuces ci-dessus sont valables dans toutes les fenêtres issues de Window_Base.
Pour vérifier, regardez la 1ere ligne de script : class Window_Gold <
Window_Base.
Les fenêtres Window_Steps et Window_Time suivent le même fonctionnement.