Saleth Empire
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Saleth Empire

Site de projets de jeux vidéos de la team AMK
 
PortailAccueilRechercherDernières imagesS'enregistrerConnexion
Le deal à ne pas rater :
Code promo Nike : -25% dès 50€ d’achats sur tout le site Nike
Voir le deal

 

 Partie 2 - Modifier une fenêtre ( Window_Base )

Aller en bas 
3 participants
AuteurMessage
Siegfried
Admin
Admin
Siegfried


Masculin Nombre de messages : 1634
Age : 37
Localisation : Valence, France
Emploi : Etudiant
Loisirs : RPG Making, Musique, dessin, mangas
Date d'inscription : 17/05/2006

Partie 2 - Modifier une fenêtre ( Window_Base ) Empty
MessageSujet: Partie 2 - Modifier une fenêtre ( Window_Base )   Partie 2 - Modifier une fenêtre ( Window_Base ) EmptyDim 2 Sep - 16:30

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.

Contenu
Ligne 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 monnaie
self.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.

Style
Lignes 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.


Dernière édition par le Mer 31 Oct - 0:27, édité 1 fois
Revenir en haut Aller en bas
https://saleth-empire.1fr1.net
Metroid_prime

Metroid_prime


Masculin Nombre de messages : 84
Age : 33
Localisation : Limousin, Limoges
Emploi : Lycéen
Loisirs : RPG, manga, l'ordinateur, astronomie
Date d'inscription : 07/08/2006

Partie 2 - Modifier une fenêtre ( Window_Base ) Empty
MessageSujet: Re: Partie 2 - Modifier une fenêtre ( Window_Base )   Partie 2 - Modifier une fenêtre ( Window_Base ) EmptyDim 2 Sep - 17:24

Je vois, je comprends mieux le fonctionnement du script qui a été utilisé comme exemple!Happy
Mais je suppose qu'il ne faut pas d'ordre spécifique pour les fonctions.
Revenir en haut Aller en bas
Siegfried
Admin
Admin
Siegfried


Masculin Nombre de messages : 1634
Age : 37
Localisation : Valence, France
Emploi : Etudiant
Loisirs : RPG Making, Musique, dessin, mangas
Date d'inscription : 17/05/2006

Partie 2 - Modifier une fenêtre ( Window_Base ) Empty
MessageSujet: Re: Partie 2 - Modifier une fenêtre ( Window_Base )   Partie 2 - Modifier une fenêtre ( Window_Base ) EmptyDim 2 Sep - 17:37

Qu'entends-tu par fonctions ?
Revenir en haut Aller en bas
https://saleth-empire.1fr1.net
Metroid_prime

Metroid_prime


Masculin Nombre de messages : 84
Age : 33
Localisation : Limousin, Limoges
Emploi : Lycéen
Loisirs : RPG, manga, l'ordinateur, astronomie
Date d'inscription : 07/08/2006

Partie 2 - Modifier une fenêtre ( Window_Base ) Empty
MessageSujet: Re: Partie 2 - Modifier une fenêtre ( Window_Base )   Partie 2 - Modifier une fenêtre ( Window_Base ) EmptyDim 2 Sep - 17:42

Tout ce qui permet de spécifier la méthode, par exemple:
super(0, 0, 160, 64)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize

tu vois, dans la méthode, on peut mettre ses "fonctions" dans n'importe quelle ordre, enfin je pense.
Revenir en haut Aller en bas
Siegfried
Admin
Admin
Siegfried


Masculin Nombre de messages : 1634
Age : 37
Localisation : Valence, France
Emploi : Etudiant
Loisirs : RPG Making, Musique, dessin, mangas
Date d'inscription : 17/05/2006

Partie 2 - Modifier une fenêtre ( Window_Base ) Empty
MessageSujet: Re: Partie 2 - Modifier une fenêtre ( Window_Base )   Partie 2 - Modifier une fenêtre ( Window_Base ) EmptyDim 2 Sep - 18:09

Non, tout dépend.
Il faut faire les choses dans l'ordre.

Prenons initialize :
Code:
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
super(0, 0, 160, 64)
Ici, on crée réellement la fenêtre.
width = 160
self.contents = Bitmap.new(width - 32, height - 32)
Width est utilisé ici. Donc on est obligé de mettre ces 2 lignes dans l'ordre.

self.contents.font.name = $fontface
self.contents.font.size = $fontsize

Ces 2 lignes peuvent être interverties, mais doivent être placées après celle qui les précède car on ne peut utiliser self.contents sans l'avoir au préalable défini.
refresh
Cette ligne est obligée d'être ici car c'est après qu'on ait défini ce qui précède qu'on peut rafraîchir la classe.

L'ordre est important en Ruby.
Revenir en haut Aller en bas
https://saleth-empire.1fr1.net
Metroid_prime

Metroid_prime


Masculin Nombre de messages : 84
Age : 33
Localisation : Limousin, Limoges
Emploi : Lycéen
Loisirs : RPG, manga, l'ordinateur, astronomie
Date d'inscription : 07/08/2006

Partie 2 - Modifier une fenêtre ( Window_Base ) Empty
MessageSujet: Re: Partie 2 - Modifier une fenêtre ( Window_Base )   Partie 2 - Modifier une fenêtre ( Window_Base ) EmptyDim 2 Sep - 18:15

Ok, je comprends, en même temps c'est logiqueXD!
merci pour m'avoir éclairé à ce propos.Happy
Revenir en haut Aller en bas
Bahamut 1.2

Bahamut 1.2


Masculin Nombre de messages : 295
Age : 36
Date d'inscription : 18/06/2006

Partie 2 - Modifier une fenêtre ( Window_Base ) Empty
MessageSujet: Re: Partie 2 - Modifier une fenêtre ( Window_Base )   Partie 2 - Modifier une fenêtre ( Window_Base ) EmptyDim 2 Sep - 22:13

Je pense que ce que tu appelles "fonctions", on pourrait plutot appeler ça des "instructions"Happy

Sinon bon tuto, tres concret quoi.
Revenir en haut Aller en bas
http://zenith-rpg.annuaire-forums.com
Metroid_prime

Metroid_prime


Masculin Nombre de messages : 84
Age : 33
Localisation : Limousin, Limoges
Emploi : Lycéen
Loisirs : RPG, manga, l'ordinateur, astronomie
Date d'inscription : 07/08/2006

Partie 2 - Modifier une fenêtre ( Window_Base ) Empty
MessageSujet: Re: Partie 2 - Modifier une fenêtre ( Window_Base )   Partie 2 - Modifier une fenêtre ( Window_Base ) EmptyVen 7 Sep - 22:49

Mmmm.... oui, fonction est implicite dans ce cas là, comme tu dis, "instruction" est plus adapté, enfin peut importe du moment que nous nous comprenions!Happy
Revenir en haut Aller en bas
Contenu sponsorisé





Partie 2 - Modifier une fenêtre ( Window_Base ) Empty
MessageSujet: Re: Partie 2 - Modifier une fenêtre ( Window_Base )   Partie 2 - Modifier une fenêtre ( Window_Base ) Empty

Revenir en haut Aller en bas
 
Partie 2 - Modifier une fenêtre ( Window_Base )
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Partie 0 - Window, Window_Base et Window_Selectable
» Annonce- conernant la partie grpahisme

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Saleth Empire :: RPG Maker XP ::  RPG Maker XP : Support :: Premiers pas dans le scripting-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser