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 :
Smartphone Xiaomi 14 – 512 Go- 6,36″ 5G Double SIM à 599€
599 €
Voir le deal

 

 Partie 1 - Comprendre une fenêtre ( Window_Base )

Aller en bas 
2 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 1 - Comprendre une fenêtre ( Window_Base ) Empty
MessageSujet: Partie 1 - Comprendre une fenêtre ( Window_Base )   Partie 1 - Comprendre une fenêtre ( Window_Base ) EmptyDim 2 Sep - 16:29

Partie 1 - Comprendre une fenêtre ( Window_Base )
Nous allons prendre la fenêtre-type : Window_Gold ( fenêtre de l'argent ).

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 analyser ce script.
Astuce : tout ce qui suit le caractère # et qui est en vert n'est pas pris en compte par le script, donc abusez-en pour mettre des commentaires, tester des choses...

La classe
Code:
class Window_Gold < Window_Base
Le nom de la classe est Window_Gold.
Pour éviter de recoder tout le système pour des fenêtres qui regrouperont des méthodes similaires, on a tout mis dans Window_Base.
Ainsi, vous pouvez appeler dans Window_Gold tout ce qui est défini dans Window_Base.
Pour appeler la fenêtre à partir d'une scène, vous utiliserez
Code:
@gold_window = Window_Gold.new
Cela sera détaillé en profondeur en abordant les scènes.

L'initialisation
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
Quand vous créez une fenêtre ( Window_Gold.new par exemple ), l'objet instance est créé et la méthode initialize se lance.
Ici, on définit ce qui est nécessaire pour la suite du fonctionnement de la fenêtre.

def initialize
Méthode initialize.
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
self.contents = Bitmap.new(width - 32, height - 32)
Création du bitmap. C'est l'espace où apparaîtra le contenu de la fenêtre.
Ici, c'est un rectangle intérieur à celui de la fenêtre avec une réduction de 16 pixels de chaque côté.
Largeur de la fenêtre = 16 + Largeur de bitmap + 16
Hauteur de la fenêtre = 16 + Hauteur de bitmap + 16
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.
refresh
Appelle la méthode refresh.
end
Clôt la méthode initialize.

Le rafraîchissement
Non, ce n'est pas l'entr'acte avec apéritifs...
Code:
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
Il s'agit de la mise à jour graphique de la fenêtre.
Dans une scène, on l'appelle avec par exemple @gold_window.refresh.

def refresh
Méthode refresh.
self.contents.clear
Supprime le contenu de la fenêtre avant d'effectuer la suite de la mise à jour.
Cela sert à éviter notamment des superpositions d'anciennes et nouvelles valeurs.
self.contents.font.color = normal_color
Change la couleur de la police en normal_color ( blanc par défaut ).
self.contents.draw_text(4, 0, 120-cx-2, 32, $game_party.gold.to_s, 2)
Dessine la quantité d'argent en possession de l'équipe ( variable $game_party.gold ).
self.contents.font.color = system_color
Change la couleur de la police en system_color ( bleu par défaut ).
self.contents.draw_text(124-cx, 0, cx, 32, $data_system.words.gold, 2)
Dessine le nom utilisé pour la monnaie ( variable $data_system.words.gold ).
end
Clôt la méthode refresh.

La clôture
Code:
end
Clôt la classe Window_Gold ainsi que ce tutorial.


Dernière édition par le Mer 31 Oct - 0:26, édité 2 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 1 - Comprendre une fenêtre ( Window_Base ) Empty
MessageSujet: Re: Partie 1 - Comprendre une fenêtre ( Window_Base )   Partie 1 - Comprendre une fenêtre ( Window_Base ) EmptyDim 2 Sep - 17:02

très bien expliqué, merci pour l'exemple!Happy

parcontre, les éléments entre parenthèse (4, 0, 120-cx-2, 32, $game_party.gold.to_s, 2) correspond à quoi? à la localisation du sujet en question? Donc dans ce cas: self.contents.draw_text.
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 1 - Comprendre une fenêtre ( Window_Base ) Empty
MessageSujet: Re: Partie 1 - Comprendre une fenêtre ( Window_Base )   Partie 1 - Comprendre une fenêtre ( Window_Base ) EmptyDim 2 Sep - 17:13

Extrait du tuto 2 qui aborde cela pour le modifier :
Spoiler:
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 1 - Comprendre une fenêtre ( Window_Base ) Empty
MessageSujet: Re: Partie 1 - Comprendre une fenêtre ( Window_Base )   Partie 1 - Comprendre une fenêtre ( Window_Base ) EmptyDim 2 Sep - 17:26

Oui j'avais vu! dsl mais logiquement j'ai commencé par la partie1 donc j'ai su trop tard
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 1 - Comprendre une fenêtre ( Window_Base ) Empty
MessageSujet: Re: Partie 1 - Comprendre une fenêtre ( Window_Base )   Partie 1 - Comprendre une fenêtre ( Window_Base ) EmptyDim 2 Sep - 17:36

Oui, je n'ai pas tenu à trop détailler dans cette partie. Happy
Revenir en haut Aller en bas
https://saleth-empire.1fr1.net
Contenu sponsorisé





Partie 1 - Comprendre une fenêtre ( Window_Base ) Empty
MessageSujet: Re: Partie 1 - Comprendre une fenêtre ( Window_Base )   Partie 1 - Comprendre une fenêtre ( Window_Base ) Empty

Revenir en haut Aller en bas
 
Partie 1 - Comprendre 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