Connexion automatique

Pas encore membre ? Inscrivez-vous ici !
Vous avez oublié votre mot de passe ? On vous aide ici

AccueilPage d'accueilFAQRechercherS'enregistrerConnexion

Sélecteur de thème :


Partagez | .
Loading Bar

Korndor
Fondatourson !

Fondatourson !
avatar
http://www.rpgmakervx-fr.com/

Nombre de messages : 4959
Age : 104
Localisation : Erem Vehyx
Avertissements : Avertissements infinis |-)
Distinction : Champion de boxe et au lit ! :O [Wax]
Être Mythique [Mister]
Papi Korndor qui a l'ostéoporose [Skillo]
Soldat Ikéa [Coco']
Un bonhomme, un vrai ! [Neresis]
Vieillard acariâtre [Didier Gustin]
Date d'inscription : 16/12/2007

MessageSujet: Loading Bar   Dim 27 Juil 2008 - 6:52

Loading bar with a percentage.
An excusive script for RMVX, The French community!

Needs a background and a stroke.
Examples:



In the script "Main", change:
Code:
$scene = Scene_Title.new
by
Code:
$scene = Scene_Chargement.new


line 53:
the scene which will follow the loading

Code:
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
#                          Chargement par Berka
#                                RGSS 2 (RMVX)
#                    http://www.rpgmakerxp.frbb.net
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

  FOND = "fond" # image to put in system file
  BARRE = "barre" # image to put in system file
  DUREE = 20 # in second
  TEXTE = "Loading..." # text that will be shown
  X_BAR = nil #position x of the stroke, nil by default
  Y_BAR = nil #position y of the stroke, nil by default
  LONG = 400 #stroke's length
  HAUT = 28 #stroke's height 
  TITRE = true # Show the project's name?
  COULEUR_FOND = Color.new(0, 0, 0, 100) # stroke's background color
  COULEUR_BARRE = Color.new(0, 0, 250, 255) # stroke's color
 
class Scene_Chargement 
  def main
    $bar , $b , $tps =0, 0, DUREE*60
    @fond = Sprite.new
    @barre = Sprite.new
    @barre.visible = false
    @fonb = Sprite.new
    @fond.bitmap = Cache.system(FOND) rescue @fond.bitmap = Bitmap.new(544, 416)
    @fenetre = Window_Barre.new((544-360)/2, 316/3, 360, 200)
    @barre.bitmap = Cache.system(BARRE) rescue nil
    if X_BAR == nil or Y_BAR == nil
      @barre.x, @barre.y = (544-LONG)/2, 240
    else
      @barre.x, @barre.y = X_BAR, Y_BAR
    end
    @xb, @yb = @barre.x, @barre.y
    @fonb.bitmap = Bitmap.new(544, 416)
    Graphics.transition
    loop do
      Graphics.update         
      Input.update   
      update                 
      break if $scene != self
    end
    Graphics.freeze
    @fond.dispose
    @fenetre.dispose
    @barre.dispose
  end
  def update
    @barre.visible = true
    if $tps > 0 and $bar <300
      $tps -= 1
    else
      $scene = Scene_Title.new # scene to exclude at the end of the loading
    end
    $b = LONG - LONG * $tps/(DUREE*60)
    @barre.src_rect.set(0, 0, $b , HAUT)
    @fonb.bitmap.fill_rect(@xb-1, @yb-1, LONG+2 , HAUT+2, COULEUR_FOND)
    @fond.update
    @fenetre.update
    @barre.update
  end
end

class Window_Barre < Window_Base
  def initialize(x, y, width, height)
    @width, @height = width, height
    super(x, y, @width, @height)
    self.opacity = 0
    refresh
  end
  def refresh
    self.contents.clear
    w = contents.text_size(TEXTE).width
    self.contents.draw_text((@width-w)/3, 40, w, WLH, TEXTE)
    tx = ($b.to_f/LONG)*100
    s = contents.text_size(tx.to_i.to_s + " %").width
    self.contents.draw_text((@width-s)/3+32, 120, s, WLH, tx.to_i.to_s + " %")
    t = $tps / Graphics.frame_rate
  end
  def update
    super
      refresh
  end
end

Of course, it's totally useless :P