Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
368 connectés actuellement
30729176 visiteurs depuis l'ouverture
2793 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
❤ 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
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)
| Pourquoi on dit toujours que les méchants sont pas gentils ?? | Il n'yaurait pas moyen d'afficher une jauge dans une fenetre ?
|
| 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 !
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é
|
Que Dieu vous garde, j'ai plus de place chez moi ... |
dam54sch -
posté le 24/11/2012 à 06:04:32 (10 messages postés)
| | 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:
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é
1
| $game_variables[@var-1] |
par
| |
|
|