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 avec degradé horinzontal Dim 15 Avr - 9:36 | |
| Hello Toujours dans l'esprit d'ajouter des jauges automatiques dans RM , voici une autre version qui vous permet de faire un dégradé d'une couleur que vous choississez vers une autre Comme il y a beaucoup de parametre a mettre dans bvotre inserer script, veuillez à ne pas couper la ligne de code, RM n'aime pas et génèrera une erreur de syntaxe. Si la ligne est coupé, mettez en forme votre code ainsi exemple (coupé après une virgule)$hp=JaugeH.new(320,0,100,24,1,0,100,"hp", 255,0,0, 0,0,255) - 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. La couleur de la jauge s'affiche en dégradé horizontal # du couleur que vous choississez vers une autre
# 1- Créer un jauge en event # Faire inserer script: $jauge = Jauge.new(x,y,w,h,var,min,max,"texte"r,v,b,r1,v1,b1) # 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) # texte par un texte entre guillement court portant le nom de votre jauge (par ex "HP"). # r,v,b (depart du dégradé) par les composantes (0a255) rouge, vert, bleu de la couleur de votre jauge (par ex 255,0,0 donne du rouge vif) # r1,v1,b1 (arrivée du dégradé) par les composantes (0a255) rouge, vert, bleu de la couleur de votre jauge (par ex 255,0,0 donne du rouge vif) # 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,"HP",255,0,0,0,0,255) # 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 # Le texte HP apparait par au dessus de la jauge # La jauge s'affiche en dégradé du rouge (255,0,0) vers le bleu (0,0,255)
# 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 jauge2_game_party_initialize initialize #-------------------------------------------------------------------------- # INITIALIZE #-------------------------------------------------------------------------- def initialize jauge2_game_party_initialize # Tableau des jauges @jauges=[] end end
#============================================================================ # JAUGE avec dégradé horizontal #============================================================================ class JaugeH attr_accessor:value attr_accessor:x attr_accessor:y attr_accessor:w attr_accessor:r attr_accessor:v attr_accessor:b attr_accessor:r1 attr_accessor:v1 attr_accessor:b1 attr_accessor:h attr_accessor:var attr_accessor:min attr_accessor:max attr_accessor:texte attr_accessor:fin_jauge
#-------------------------------------------------------------------------- # INITIALIZE #-------------------------------------------------------------------------- def initialize(x,y,w,h,var,min,max,texte,r,v,b,r1,v1,b1) @x=x;@y=y;@w=w;@h=h;@var=var;@min=min;@max=max @r=r;@v=v;@b=b;@texte=texte @r1=r1;@v1=v1;@b1=b1 @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 jauge2_spriteset_map_initialize initialize alias jauge2_spriteset_map_dispose dispose alias jauge2_spriteset_map_update update #-------------------------------------------------------------------------- # INITIALIZE #-------------------------------------------------------------------------- def initialize # Créé les jauges @jauge_windows=[] for jauge in $game_party.jauges setup_jauge(jauge) end jauge2_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.draw_text(0,0,jauge.w, jauge.h,jauge.texte,1) @jauge_windows.push(window) end
#-------------------------------------------------------------------------- # UPDATE #-------------------------------------------------------------------------- def update jauge2_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.value r = (jauge.r1-jauge.r) * i/(jauge.max-jauge.min)+jauge.r g = (jauge.v1-jauge.v) * i/(jauge.max-jauge.min)+jauge.v b = (jauge.b1-jauge.b) * i/(jauge.max-jauge.min)+jauge.b window.contents.fill_rect(i, TAILLE, 1,jauge.h , Color.new(r, g, b, 255)) end end #-------------------------------------------------------------------------- # DISPOSE #-------------------------------------------------------------------------- def dispose jauge2_spriteset_map_dispose for window in @jauge_windows window.dispose end end end | |
|