Roys Guide
Nombre de messages : 111 Age : 52 Projet Principal : Le Crépuscule des Dieux Aide Recherchée pour : des chara aRPG Surnom : Scripteur Monomaniaque Date d'inscription : 24/02/2007
| Sujet: Ajouter des jauges colorées Dim 25 Fév - 5:48 | |
| Bonjour 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. Voici le script appelez le Jauge et mettez le au dessus de main. Des explications sont indiquées en en-tête pour créer votre première jauge, lisez les attentivement. bon making - Code:
-
#============================================================================ # 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 un 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"). # 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 attr_accessor:texte #-------------------------------------------------------------------------- # 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] / (@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,jauge.texte,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 Bon, j'ajoute un screen bien que de toute facon vous pouvez changer la taille, la couleur, la position, le nom | |
|