Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Sorties: "Dread Mac Farlane", (...) / Tutos: Checklist de la composition (...) / Sorties: Dread Mac Farlane - episode 8 / Sorties: Dread Mac Farlane - episode 7 / Jeux: Ce qui vit Dessous / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

316 connectés actuellement

29424657 visiteurs
depuis l'ouverture

8884 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

RPG Maker Détente

Kingdom Ultimate

Lunae - le bazar d'Emz0

Le Comptoir Du clickeur

Offgame

Tous nos partenaires

Devenir
partenaire



Jauges

[Outil d'aide au développeur] Ajoute des fonctionnalités aux commandes événementielles, ici les jauges (taille, position, couleur, texte...)

Script pour RPG Maker XP
Ecrit par roys
Publié par Roys (lui envoyer un message privé)
Signaler un script cassé

❤ 0

Auteur : Stephane Roys

Fonctionnalités
Ce script vous permettra de créer plusieurs jauges :
- à l'emplacement que vous voulez sur l'ecran
- de la taille que vous voulez
- avec la couleur que vous voulez
- avec un texte par dessus

La jauge est gérée par une variable RMXP que VOUS désignez. Elle est mise à jour automatique dès que vous l'avez créée. Vous pouvez l'effacer à tout moment par une commande simple.
Enfin, la sauvergarde est intégrée. C'est à dire que si vous sauvez votre partie, la jauge prendra la place où vous l'avez laissé lors de la sauvegarde.

Installation
A placer au-dessus de Main.

Utilisation
Des explications sont indiquées en en-tête pour créer votre première jauge, lisez-les attentivement.

bon making

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
#============================================================================
# SCRIPT DE JAUGE
# Stephane Roys, Royer
# Fevrier 2007
# Projet: Petite Boite à outils pour aider les event maker
#
# Ce script permet de gèrer en event l'apparition d'une jauge dont la longueur
# dépend d'une variable RPG Maker
#
# 1- Créer une jauge en event
# Faire inserer script: $jauge = Jauge.new(x,y,w,h,var,min,max,r,v,b,"texte")
# Remplacer $jauge par $le_nom_de_votre_jauge
#           x et y par les coordonnées ecran ou s'affichent votre jauge
#           w par largeur de votre jauge
#           h par hauteur de votre jauge
#           var par le numéro de votre variable qui contrôle la jauge
#           min la valeur minimale que peut prendre la variable (par ex : 0)
#           max la valeur maximale que peut prendre la variable (par ex : 100)
#           r,v,b par les composantes (0a255) rouge, vert, bleu de la couleur de votre jauge (par ex 255,0,0 donne du rouge vif)
#           texte par un texte entre guillement court portant le nom de votre jauge (par ex "HP").
#             la taille et la font du texte sont celle de base de votre projet
# exemple: $hp=Jauge.new(0,0,100,24,1,0,100,255,0,0,"HP")
# ici on créé un jauge $hp qui s'affiche en 0,0 (coin haut gauche) de largeur 100
# et de hauteur 24pixels, gèrer par la variable001, dont les valeurs sont comprises entre 0 et 100
# Et dont la couleur est rouge. Le texte HP apparait par au dessus de la jauge
#
# 2- Mise à jour de la jauge
# La mise à jour est automatique, vous n'avez qu'à changer la valeur de la variable de votre jauge
# Ainsi que l'effacement quand vous allez sur votre menu
#
# 3- Effacer une jauge
# Faire simplement $le_nom_de_votre_jauge.off
#
#
# Recommandations à lire
#------------------------
# 1- Vous pouvez changer la taille de la Police de toute jauge ici:
FONT="Arial"
TAILLE=16
 
#2- Prenez soin de donner des noms différents à vos jauges sinon vous risquez d'avoir des conflits
#
#3- Ne crééez pas une jauge en processus parallèle sinon vous allez créér une nouvelle jauge à chaque frame
# jusqu'a ce que RM bug
#
#4- La sauvergarde est comprise dans le script. Donc apres un load votre jauge sera dans l'etat ou elle a été sauvée
#
#5- Les jauges s'effacent toutes seuls quand vous sortez de la map vers un menu, et elles se recréent seules quand vous revenez sur la map
#
#============================================================================
 
#============================================================================
# JAUGE
# Créé le tableau des Jauges de Jeu
#============================================================================
class Game_Party
  attr_accessor:jauges
  alias jauge_game_party_initialize initialize
  #--------------------------------------------------------------------------
  # INITIALIZE
  #--------------------------------------------------------------------------
  def initialize
    jauge_game_party_initialize
    # Tableau des jauges
    @jauges=[]
  end
end
 
#============================================================================
# JAUGE
#============================================================================
class Jauge
  
  attr_accessor:value
  attr_accessor:x
  attr_accessor:y
  attr_accessor:w
  attr_accessor:h
  attr_accessor:var
  attr_accessor:r
  attr_accessor:v
  attr_accessor:b
  attr_accessor:fin_jauge
  
  #--------------------------------------------------------------------------
  # INITIALIZE
  #--------------------------------------------------------------------------
  def initialize(x,y,w,h,var,min,max,r,v,b,texte)
    @x=x;@y=y;@w=w;@h=h;@var=var;@min=min;@max=max
    @r=r;@v=v;@b=b;@texte=texte
    @fin_jauge=false
    $game_party.jauges.push(self)
    @visible=true   
  end
   
  #--------------------------------------------------------------------------
  # UPDATE
  # Calcule la longueur de la jauge en fonction de la variable var affectée
  #--------------------------------------------------------------------------
  def update
    @value = @w * $game_variables[@var-1] / (@max-@min)
  end
 
  #--------------------------------------------------------------------------
  # OFF
  # Termine la jauge
  #--------------------------------------------------------------------------
  def off
    @fin_jauge=true
  end
end
 
#============================================================================
# ¦ Spriteset Map
#============================================================================
class Spriteset_Map
  #--------------------------------------------------------------------------
  alias jauge_spriteset_map_initialize initialize
  alias jauge_spriteset_map_dispose dispose
  alias jauge_spriteset_map_update update
 
  #--------------------------------------------------------------------------
  # INITIALIZE
  #--------------------------------------------------------------------------
  def initialize
    # Créé les jauges
    @jauge_windows=[]
    for jauge in $game_party.jauges
      setup_jauge(jauge)
    end
    jauge_spriteset_map_initialize
  end
  
  #--------------------------------------------------------------------------
  # SETUP
  #--------------------------------------------------------------------------
  def setup_jauge(jauge)
    window=Window_Base.new(jauge.x, jauge.y, jauge.w+32, jauge.h+32+TAILLE)
    window.contents = Bitmap.new(window.width - 32, window.height - 32)
    window.contents.font.color= Color.new(0,0,0)
    window.opacity = 0
    window.z = 3000
    window.contents.font.name = FONT  
    window.contents.font.size = TAILLE
    window.contents.font.color= Color.new(jauge.r,jauge.v,jauge.b)
    window.contents.draw_text(0,0,jauge.w, jauge.h,"HP",1)
    @jauge_windows.push(window)
  end
 
  #--------------------------------------------------------------------------
  # UPDATE
  #--------------------------------------------------------------------------
  def update
    jauge_spriteset_map_update
    #-----------------------------
    # Cherche si une nouvelle jauge a été créée
    for key in @jauge_windows.size..$game_party.jauges.size-1
      setup_jauge($game_party.jauges[key])
    end
    #-----------------------------
    # Update la jauge
    delete_window=[]
    delete_jauge=[]
    for key in  0..$game_party.jauges.size-1
      jauge=$game_party.jauges[key]
      window=@jauge_windows[key]
      # Affiche la fenêtre de la jauge
      update_jauge(jauge, window)
      # Observe si la jauge est disposée
      if jauge.fin_jauge
        delete_window.push(window)
        delete_jauge.push(jauge)
      end
    end
    #-----------------------------
    # Dispose la jauge
    for window in delete_window
      window.dispose
      @jauge_windows.delete(window)
    end
    for jauge in delete_jauge
      $game_party.jauges.delete(jauge)
    end
  end
  
  #--------------------------------------------------------------------------
  # UPDATE JAUGE
  #--------------------------------------------------------------------------
  def update_jauge(jauge,window)
    #-----------------------------
    # Recalcule la jauge
    jauge.update
    #-----------------------------
    # Affiche un fond gris
    window.contents.fill_rect(0, TAILLE, jauge.w, jauge.h, Color.new(0, 0, 0, 100)) 
    #-----------------------------
    # Affiche la jauge en dégradé de la couleur choisie
    for i in 0..jauge.h/2
      r = jauge.r  * i*2/jauge.h
      g = jauge.v * i*2/jauge.h
      b = jauge.b  * i*2/jauge.h
      a = 255 * i*2/jauge.h
      window.contents.fill_rect(0, TAILLE+i, jauge.value , 1, Color.new(r, g, b, a)) 
    end
    for i in jauge.h/2..jauge.h
      r = jauge.r   *  (i-jauge.h).abs*2/jauge.h
      g = jauge.v *  (i-jauge.h).abs*2/jauge.h
      b = jauge.b  *  (i-jauge.h).abs*2/jauge.h
      a = 255 *  (i-jauge.h).abs*2/jauge.h
      window.contents.fill_rect(0, TAILLE+i, jauge.value , 1, Color.new(r, g, b, a)) 
    end 
  end
  
  #--------------------------------------------------------------------------
  # DISPOSE
  #--------------------------------------------------------------------------
  def dispose
    jauge_spriteset_map_dispose
    for window in @jauge_windows
      window.dispose
    end
  end
end






Darkmianh - posté le 26/07/2008 à 16:46:19 (103 messages postés)

❤ 0

Pourquoi on dit toujours que les méchants sont pas gentils ??

Il n'yaurait pas moyen d'afficher une jauge dans une fenetre ?

:ombre


SuperGregMaker - posté le 24/05/2010 à 12:37:32 (111 messages postés)

❤ 0

J'aime les trains.

SuperGregMaker a dit:


Super cool ce script, je vais l'utiliser pour faire un duel comme le Tvekamp de "Light Prism" !

Merci beaucoup !

:bob


UP!
Juste une petite question : je veux bien avouer que Roys est demerde, mais ya un ptit prob : dans les commandes il indique ca :

$le_nom_de_votre_jauge = (.......................................)

Et dans son exemple :

$hp=(.........................................)

En gros ya un moment ou il met un espace et un autre non.
En gros il faut le mettre ou pas ? Pck a chaque fois ca me met "?????Syntax Error ??????"


Merci




Ça va j'ai trouvé. Je vais détailer les couleurs du mode RVB (Rouge, Vert, Bleu) que RGSS1 utilise.
Pour modifier le texte d'une fenêtre RGSS : self.contents.font.color = Color.new(R, V, B)
Exemple : Pour une fenetre avec un texte en Magenta :




class Window_Perso < Window_Base #Crée une nouvelle fenêtre heritée de Window_Base

def initialize #Methode "initialize"
super(X, Y, Longueur, Largeur) #Crée la fenêtre
self.contents = Bitmap.new(widht - 32, height - 32) #Bordure entre le Bitmap et les bords de la fenêtre (32 par def.)
self.contents.font.name = $fontface #$defaultfontname pour la version 1.02 anglaise. Police d'écriture de base
self.contents.font.size = $fontsize # $defaultfontsize pour la version 1.02 anglaise. Taille de base de la police d'écriture
self.contents.font.color = Color.new(212, 11, 225) #Couleur du texte, ici Magenta
refresh #appelle la methode refresh
end #De la methode "initialize"

def refresh #Methode "refresh"
self.contents.clear #On efface ce qu'il y a déjà pour eviter la superposition des textes
self.contents.draw_text("Votre texte", X, Y, Longueur*, Largeur*) #"Dessine" le texte
end #De la methode "refresh"

end #De la fenetre "Window_Perso"

* Ce sont les dimensions d'un rectangle "virtuel". Le texte est centré dans ce rectangle invisible. (Je crois =D)




Les couleurs a présent :

Couleur Rouge : 255, 0, 0.
Couleur Verte : 0, 255, 0.
Couleur Bleue : 0, 0, 255.

Couleur Jaune : 255, 255, 0. (Mix de Rouge et de Vert)
Couleur Cyan : 0, 255, 255. (Mix de Bleu et de Vert)
Couleur Magenta : 255, 0, 255. (Mix de Rouge et de Bleu - On retrouve a peu près ce code dans le script au dessus)

Couleur Blanche : 255, 255, 255. (Mix des trois couleurs)
Couleur Noire : 0, 0, 0 (Aucune couleur)

Pour trouver des couleurs, ouvrez un logiciel photo, et cliquez sur le carré de couleur sélectionné. (Du moins sur Photoshop/Photofiltre), un petit assistant met les taux de chaque tons RVB. Modifiez la couleur et regardez le résultat de votre couleur ... Ou creez-en en modifiant les valeurs RVB ;) !




Petit tuto by SuperGregMaker, j'espère que ça vous a aidé :D
:biere

Que Dieu vous garde, j'ai plus de place chez moi ...


dam54sch - posté le 24/11/2012 à 06:04:32 (10 messages postés)

❤ 0

bon je sais pas si on me répondras depuis le temps du message précédent mais j'ai un soucis avec le script la jauge s'affiche sans problème mais reste toujours a 0 bien que j'augmente ou diminue la valeur de la variable utilisée

Si quelqu'un passe par ici et pourrait me dire comment régler le problème ce serait super merci.

edit: c régler a un moment du script ya ça:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
#--------------------------------------------------------------------------
  # UPDATE
  # Calcule la longueur de la jauge en fonction de la variable var affectée
  #--------------------------------------------------------------------------
  def update
    @value = @w * $game_variables[@var-1] / (@max-@min)
  end




j'ai remplacé

Portion de code : Tout sélectionner

1
$game_variables[@var-1]



par

Portion de code : Tout sélectionner

1
$game_variables[@var]



Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers