Invité Invité
| Sujet: Barre de progression Jeu 25 Déc 2014 - 17:48 | |
| Bonjour/bonsoir à tous ! Aujourd'hui, je vous poste un script permettant d'afficher une barre de progression dans le jeu. Trouvé sur RM Land. •Installation : Ouvrez l'éditeur de scripts (F11), créez un nouveau script au dessus de Main que vous nommerez Scene_Progress2 et collez le code ci-dessous. •Utilisation : Faites un évènement, où, grâce à la fonction Insérer un script, vous collerez ceci : $game_variables[1] = "Nombre" $scene = Scene_Progress.new Vous remplacerez Nombre par le pourcentage de progression. Par exemple 12 pour 12% de progression. •Image : - Spoiler:
- Code:
-
#===================================== #Gradient Bars with customizable lengths, thicknesses, types and Colors #By AcedentProne #===================================== class Window_Base def draw_normal_barz(x, y, type, length, thick, e1, e2, c1 = Color.new(255,0,0,255), c2 = Color.new(0,0,0,255)) if type == "horizontal" width = length height = thick self.contents.fill_rect(x-1, y - 1, width+2, height + 3, Color.new(255, 255, 255, 255)) self.contents.fill_rect(x, y, width, height + 1, Color.new(0, 0, 0, 255)) w = width * e1 / e2 for i in 0..height r = c1.red + (c2.red - c1.red) * (height -i)/height + 0 * i/height g = c1.green + (c2.green - c1.green) * (height -i)/height + 0 * i/height b = c1.blue + (c2.blue - c1.blue) * (height -i)/height + 0 * i/height a = c1.alpha + (c2.alpha - c1.alpha)* (height -i)/height + 255 * i/height self.contents.fill_rect(x, y+i, w, 1, Color.new(r, g, b, a)) end elsif type == "vertical" width = thick height = length self.contents.fill_rect(x-1, y - 1, width+3, height + 2, Color.new(255, 255, 255, 255)) self.contents.fill_rect(x, y, width+1, height , Color.new(0, 0, 0, 255)) h = height * e1 / e2 for i in 0..width r = c1.red + (c2.red - c1.red) * (width -i)/width + 0 * i/width g = c1.green + (c2.green - c1.green) * (width -i)/width + 0 * i/width b = c1.blue + (c2.blue - c1.blue) * (width -i)/width + 0 * i/width a = c1.alpha + (c2.alpha - c1.alpha)* (width -i)/width + 255 * i/width self.contents.fill_rect(x+i, y, 1, h, Color.new(r, g, b, a)) end end end def draw_actor_barz(actor,x, y, type, length, thick, e1, e2, c1 = Color.new(255,0,0,255), c2 = Color.new(0,0,0,255)) if type == "horizontal" width = length height = thick self.contents.fill_rect(x-1, y - 1, width+2, height + 3, Color.new(255, 255, 255, 255)) self.contents.fill_rect(x, y, width, height + 1, Color.new(0, 0, 0, 255)) w = width * e1 / e2 for i in 0..height r = c1.red + (c2.red - c1.red) * (height -i)/height + 0 * i/height g = c1.green + (c2.green - c1.green) * (height -i)/height + 0 * i/height b = c1.blue + (c2.blue - c1.blue) * (height -i)/height + 0 * i/height a = c1.alpha + (c2.alpha - c1.alpha)* (height -i)/height + 255 * i/height self.contents.fill_rect(x, y+i, w, 1, Color.new(r, g, b, a)) end elsif type == "vertical" width = thick height = length self.contents.fill_rect(x-1, y - 1, width+3, height + 2, Color.new(255, 255, 255, 255)) self.contents.fill_rect(x, y, width+1, height , Color.new(0, 0, 0, 255)) h = height * e1 / e2 for i in 0..width r = c1.red + (c2.red - c1.red) * (width -i)/width + 0 * i/width g = c1.green + (c2.green - c1.green) * (width -i)/width + 0 * i/width b = c1.blue + (c2.blue - c1.blue) * (width -i)/width + 0 * i/width a = c1.alpha + (c2.alpha - c1.alpha)* (width -i)/width + 255 * i/width self.contents.fill_rect(x+i, y, 1, h, Color.new(r, g, b, a)) end end end end
Créez un nouveau script au dessus de "Main" et nommez le "Scene_Progress"
#Game Progress Screen made by osbornecreations A.K.A Lewis Osborne #This was made by an englishman!!! (thats me) go on son! #Just put in a new screen above main. it shouldn't interfere with anything. #To call the script, use $scene = Scene_Progress.new and to change the #game progress bar, it is assigned using $game_variables[1] so through the game #call a script and type in something like $game_variables[1] =10 to make the game 10% complete.
#=================================================== # - ClassScene_Progress #=================================================== class Scene_Progress
#--------------------------------------------------------------------------------- def initialize end #---------------------------------------------------------------------------------
def main @window1 = Window_Progress.new @window1.x =160 @window1.y =200 @window1.height = 100 @window1.width = 341 #@window1.z = 200
Graphics.transition loop do Graphics.update Input.update if Input.trigger?(Input::B) # ????? SE ??? $game_system.se_play($data_system.cancel_se) # ?????????? @sprite = Sprite.new @sprite.bitmap = RPG::Cache.panorama("", 0) $scene = Scene_Menu.new end #update if $scene != self break end end
Graphics.freeze @window1.dispose
end #---------------------------------------------------------------------------------
#--------------------------------------------------------------------------------- def update end #---------------------------------------------------------------------------------
end class Window_Progress < Window_Base
#--------------------------------------------------------------------------------- def initialize super(0, 0, 341,100) self.contents = Bitmap.new(width - 50, height - 32) self.contents.font.name = "Tahoma" self.contents.font.size = 24 self.contents.font.color = text_color(0) self.contents.draw_text(20, 0, 33, 33, "Game") self.contents.draw_text(55, 0, 33, 33, "Progre") self.contents.draw_text(88, 0, 33, 33, "ss ") self.contents.draw_text(110, 0, 33, 33, "% ") draw_actor_barz(0,20,35, "horizontal", 255, 28,$game_variables[1],100) @sprite = Sprite.new @sprite.bitmap = RPG::Cache.panorama("004-CloudySky01", 0) end #---------------------------------------------------------------------------------
end
J'ai pas testé, mais les admins de RM Land s'en sont chargé je pense. Il semblerait qu'il y ait pas besoin de ressource particulière non plus. |
|
Kasbak Membre V.I.P.
Messages postés : 1356 Date d'inscription : 05/01/2013 Jauge LPC :
| Sujet: Re: Barre de progression Sam 27 Déc 2014 - 8:33 | |
| J'utilise ce script pour un projet,ce qui est bien c'est que l'ont peut facilement intégré cette barre de progression dans d'autres scripts,dans les menus entre autres,ou même sur la map principale et on peut aussi facilement changer la couleur de la barre ect...on peut également l'utiliser en en mettant plusieurs barre est créer par exemple des jauges de vie, de faim ect,tous ça très facilement... |
|