Og³oszenie 

Uwaga! To forum jest w trybie offline.
WszelkÄ… pomoc uzyskasz pod adresem
forum.ultimateam.pl


Administracja Forum


Poprzedni temat «» Nastêpny temat
Advanced Load Bar
Autor Wiadomo¶æ
Domilos 




Preferowany:
RPG Maker VXAce

Pomóg³: 2 razy
Do³±czy³: 16 Cze 2011
Posty: 62
Wys³any: Pon 25 Cze, 2012 16:26
Advanced Load Bar
~ Advanced Load Bar ~


Krótki opis:
Skrypt wyświetla pasek ładowania podczas zapisywania i wczytywania gry. Można go także użyć do innych celów, takich jak np. zmiana mapy.

Autor:
Moghunter http://www.atelier-rgss.com

Tłumaczenie:
Domilos (mogą być jakieś błędy, gdyż tłumaczyłem z portugalskiego)

Skrypt:
Spoiler:

Kod:
#===============================================================================
# +++ MOG - Advanced Load Bar VX (v1.0) +++
#===============================================================================
# By Moghunter
# Tłumaczenie: Domilos
# http://www.atelier-rgss.com 
#===============================================================================
# Skrypt wyświetla pasek ładowania podczas zapisywania i wczytywania gry.
#
#===============================================================================
# Możesz użyć tego skryptu w inny sposób, jak np. przejście na inną mapę.
# Wystarczy wpisać to, w polecenie "Script":
#
# $scene = Scene_Load_Bar.new
#===============================================================================
module MOG_LOAD_BAR
   # Czas Å‚adowania (sekundy).
   LOAD_DURATION = 3
   # Pokazywać Å‚adowanie podczas wczytywania gry?
   ENABLE_LOAD_BAR_FOR_SCENE_LOAD = true
   # Pokazywać Å‚adowanie podczas zapisywania gry?
   ENABLE_LOAD_BAR_FOR_SCENE_SAVE = true   
   # Nazwy obrazków, które bÄ™dÄ… sÅ‚użyÅ‚y jako tÅ‚o.
   LOAD_BACKGROUND_PICTURES = [
   ""
   # Wszystkie nazwy obrazków, oprócz ostatniego, muszÄ… mieć przecinek po cudzysÅ‚owie.
   ]
   # Pokazywać obrazki losowo?
   PICTURE_RANDOM_SELECTION = true   
   # Pozycja generalnego paska.
   LOAD_BAR_POSITION = [30,350]
   # Pozycja kolorowego paska Å‚adowania(?).
   LOAD_BAR_METER_POSITION = [11,27]
   # Pozycja tekstu.
   LOAD_BAR_TEXT_POSITION = [ 10, -3]
   # DźwiÄ™k, jaki zostanie wydany po zakoÅ„czeniu Å‚adowania.
   LOAD_SE = "Decision2"
   # Szybkość animacji.
   LOAD_BAR_FLOW_SPEED = 25
   # Ustawienia, które nastÄ…piÄ… w menu po zapisaniu.
   # JeÅ›li zapis jest wykonywany przez zdarzenie, nastÄ…pi powrót do mapy.
   RETURN_TO_SCENE = Scene_Menu.new(4)
   # LewitujÄ…cy tekst?
   ENABLE_FLOAT_TEXT_ANIMATION = true
   # WyÅ›wietlić sprite bohatera?
   ENABLE_CHARACTER_SPRITE = true
   # Pokazać boczne paski?
   ENABLE_STRIPE_SPRITE = true
   # PrÄ™dkość pasków.
   STRIPE_SPEED = 1
end

#=============================================================================
# ■ Game_Temp
#=============================================================================
class Game_Temp
  attr_accessor :load_bar_pre_index
  attr_accessor :save_calling_load_bar
  attr_accessor :load_pre_bgm
  attr_accessor :load_pre_bgs
 
 #--------------------------------------------------------------------------
 # ● Initialize
 #--------------------------------------------------------------------------             
 alias load_bar_initialize initialize
 def initialize
     load_bar_initialize
     @load_bar_pre_index = -1
     @save_calling_load_bar = false
 end
   
end

#=============================================================================
# ■ Game_System
#=============================================================================
class Game_System
  attr_accessor :load_bar_pre_index
 
 #--------------------------------------------------------------------------
 # ● Initialize
 #--------------------------------------------------------------------------             
 alias load_bar_initialize initialize
 def initialize
     load_bar_initialize
     @load_bar_pre_index = 0
 end
 
 #--------------------------------------------------------------------------
 # ● BGS Stop
 #--------------------------------------------------------------------------             
 def bgs_stop
     Audio.bgs_stop
 end
end

#=============================================================================
# ■ Scene Load Bar
#=============================================================================
class Scene_Load_Bar
 include MOG_LOAD_BAR
 
 #--------------------------------------------------------------------------
 # ● Initialize
 #--------------------------------------------------------------------------           
 def initialize(type = 0) 
     @bar_type = type
     @load_duration_max = 60 * LOAD_DURATION
     @load_duration_max = 60 if @load_duration_max < 60 
     @load_duration = 0
     @pictures = LOAD_BACKGROUND_PICTURES
     create_background
     create_layout 
     create_load_bar
     create_text
     create_side_strip
 end
   
 #--------------------------------------------------------------------------
 # &#9679; Create Background
 #--------------------------------------------------------------------------           
 def create_background 
     @background = Sprite.new
     if PICTURE_RANDOM_SELECTION
        $game_system.load_bar_pre_index = rand(@pictures.size)
        no_repeat_picture
     end
     image_name = @pictures[$game_system.load_bar_pre_index]   
     image_name = "" if image_name == nil     
     @background.bitmap = Cache.picture(image_name)
     $game_temp.load_bar_pre_index = $game_system.load_bar_pre_index
     unless PICTURE_RANDOM_SELECTION
        $game_system.load_bar_pre_index += 1
        $game_system.load_bar_pre_index = 0 if $game_system.load_bar_pre_index > @pictures.size - 1
     end   
 end
   
 #--------------------------------------------------------------------------
 # &#9679; No Repeat Picture
 #--------------------------------------------------------------------------           
 def no_repeat_picture
     if $game_system.load_bar_pre_index == $game_temp.load_bar_pre_index
        $game_system.load_bar_pre_index += 1
        $game_system.load_bar_pre_index = 0 if $game_system.load_bar_pre_index > @pictures.size - 1
     end 
 end
 
 #--------------------------------------------------------------------------
 # &#9679; Create Layout
 #--------------------------------------------------------------------------           
 def create_layout 
     @hud = Sprite.new
     @hud.bitmap = Cache.system("Load_Bar_Layout")
     @hud.x = LOAD_BAR_POSITION[0]
     @hud.y = LOAD_BAR_POSITION[1]
     @hud.z = 10
 end
 
 #--------------------------------------------------------------------------
 # &#9679; Create Layout
 #--------------------------------------------------------------------------           
 def create_side_strip
     if @bar_type == 0
        image_name_1 = "Load_Bar_Stripe1_L"
        image_name_2 = "Load_Bar_Stripe2_L"
     else 
        image_name_1 = "Load_Bar_Stripe1_S"
        image_name_2 = "Load_Bar_Stripe2_S"
     end 
     @stripe1 = Plane.new
     @stripe1.bitmap = Cache.system(image_name_1)
     @stripe1.z = 1
     @stripe2 = Plane.new
     @stripe2.bitmap = Cache.system(image_name_2)
     @stripe2.z = 1         
     @stripe1.visible = ENABLE_STRIPE_SPRITE
     @stripe2.visible = ENABLE_STRIPE_SPRITE
 end
 
 #--------------------------------------------------------------------------
 # &#9679; Create Load Bar
 #--------------------------------------------------------------------------           
 def create_load_bar
     @bar_flow = 0
     @bar_image = Cache.system("Load_Bar_Meter")
     @bar_bitmap = Bitmap.new(@bar_image.width,@bar_image.height)
     @bar_range = @bar_image.width / 3
     @bar_width = @bar_range  * @load_duration / @load_duration_max
     @bar_height = @bar_image.height
     @bar_width_old = @bar_width
     @bar_src_rect = Rect.new(@bar_flow, 0, @bar_width, @bar_height)
     @bar_bitmap.blt(0,0, @bar_image, @bar_src_rect)
     @bar_sprite = Sprite.new
     @bar_sprite.bitmap = @bar_bitmap
     @bar_sprite.z = 11
     @bar_sprite.x = LOAD_BAR_POSITION[0] + LOAD_BAR_METER_POSITION[0]
     @bar_sprite.y = LOAD_BAR_POSITION[1] + LOAD_BAR_METER_POSITION[1]
     update_bar_flow
 end
 
 #--------------------------------------------------------------------------
 # &#9679; Create Text
 #--------------------------------------------------------------------------           
 def create_text
     @text_float_time = 0
     @text_float_y = 0
     @text_image = Cache.system("Load_Bar_Text")
     @text_bitmap = Bitmap.new(@text_image.width,@text_image.height)
     @text_width = @text_image.width
     @text_height = @text_image.height / 2
     @text_src_rect = Rect.new(0, @text_height * @bar_type, @text_width, @text_height)
     @text_bitmap.blt(0,0, @text_image, @text_src_rect)   
     @text_sprite = Sprite.new
     @text_sprite.bitmap = @text_bitmap   
     @text_fy = LOAD_BAR_POSITION[1] + LOAD_BAR_TEXT_POSITION[1]
     @text_sprite.x = LOAD_BAR_POSITION[0] + LOAD_BAR_TEXT_POSITION[0]
     @text_sprite.y = @text_fy
     @text_sprite.z = 12
 end
 
 #--------------------------------------------------------------------------
 # &#9679; Main
 #--------------------------------------------------------------------------         
 def main
     Graphics.transition
     execute_loop
     execute_dispose
 end   
 
 #--------------------------------------------------------------------------
 # &#9679; Execute Loop
 #--------------------------------------------------------------------------           
 def execute_loop
     loop do
         Graphics.update
         update
         if $scene != self
            break
         end
     end 
  end
 
 #--------------------------------------------------------------------------
 # &#9679; Execute Dispose
 #--------------------------------------------------------------------------           
 def execute_dispose
     @hud.bitmap.dispose
     @hud.dispose
     @stripe1.bitmap.dispose
     @stripe1.dispose     
     @stripe2.bitmap.dispose
     @stripe2.dispose       
     @bar_image.dispose
     @bar_bitmap.dispose
     @bar_sprite.bitmap.dispose
     @bar_sprite.dispose     
     @background.bitmap.dispose
     @background.dispose
     @text_image.dispose
     @text_bitmap.dispose
     @text_sprite.bitmap.dispose
     @text_sprite.dispose
     Graphics.transition
     Graphics.freeze
 end 
 
 #--------------------------------------------------------------------------
 # &#9679; Update
 #--------------------------------------------------------------------------             
 def update
     update_bar_flow
     update_bar_duration
     update_float_text
     update_slide_stripe
 end
 
 #--------------------------------------------------------------------------
 # &#9679; Update Slide Stripe
 #--------------------------------------------------------------------------             
 def update_slide_stripe
     @stripe1.oy += STRIPE_SPEED
     @stripe2.ox += STRIPE_SPEED
 end   
   
 #--------------------------------------------------------------------------
 # &#9679; update_float_text
 #--------------------------------------------------------------------------             
 def update_float_text
     return unless ENABLE_FLOAT_TEXT_ANIMATION
     @text_float_time += 1
     case @text_float_time
        when 1..10
           @text_float_y += 1
        when 11..20
           @text_float_y -= 1
        else
          @text_float_y = 0
          @text_float_time = 0
     end
     @text_sprite.y = @text_fy + @text_float_y
 end
 
 #--------------------------------------------------------------------------
 # &#9679; Update Bar Flow
 #--------------------------------------------------------------------------           
 def update_bar_flow
     @bar_sprite.bitmap.clear
     @bar_width = @bar_range  * @load_duration / @load_duration_max
     @bar_width = @bar_range if @load_duration > @load_duration_max
     @bar_src_rect = Rect.new(@bar_flow, 0,@bar_width, @bar_height)
     @bar_bitmap.blt(0,0, @bar_image, @bar_src_rect)
     @bar_flow += LOAD_BAR_FLOW_SPEED
     if @bar_flow >= @bar_image.width - @bar_range
        @bar_flow = 0     
     end
 end   
   
 #--------------------------------------------------------------------------
 # &#9679; Update Bar Duration
 #--------------------------------------------------------------------------             
 def update_bar_duration
     @load_duration += 1
     if @load_duration == @load_duration_max
        Audio.se_play("Audio/SE/" + LOAD_SE,100,100) rescue nil
     elsif @load_duration == @load_duration_max + 10
        if @bar_type == 0 or $game_temp.save_calling_load_bar
           if @bar_type == 0
              $game_temp.load_pre_bgm.play
              $game_temp.load_pre_bgs.play     
           end
           $scene = Scene_Map.new
        else   
           $scene = MOG_LOAD_BAR::RETURN_TO_SCENE
        end 
        $game_temp.save_calling_load_bar = false
     end
 end 
 
end

#=============================================================================
# &#9632; Game_Temp
#=============================================================================
class Scene_File < Scene_Base
 
  #--------------------------------------------------------------------------
  # * Return to Original Screen
  #--------------------------------------------------------------------------
  alias mog_adv_load_bar_return_scene return_scene
  def return_scene
      mog_adv_load_bar_return_scene
      $game_temp.save_calling_load_bar = true if @from_event
      $scene = Scene_Load_Bar.new(1)
  end
 
  #--------------------------------------------------------------------------
  # * Execute Load
  #--------------------------------------------------------------------------
  def do_load   
      file = File.open(@savefile_windows[@index].filename, "rb")
      read_save_data(file)
      file.close
      $scene = Scene_Load_Bar.new(0)
      RPG::BGM.fade(1500)
      RPG::BGS.fade(1500)
      $game_temp.load_pre_bgm = @last_bgm
      $game_temp.load_pre_bgs = @last_bgs
  end
end 

$mog_vx_advanced_load_bar = true


Dodatkowe informacje:
Tła umieszczamy w folderze Pictures.

Te obrazki w folderze System:
Spoiler:



loadbarlayout.png

loadbarmeter.png

loadbarstripe1l.png

loadbarstripe1s.png

loadbarstripe2l.png

loadbarstripe2s.png

loadbartext.png



Nie dałem screen'a, gdyż jest to animowane. Zamiast tego macie krótki filmik. Co prawda jest on do wersji na XP, ale wszystko jest takie same.

http://www.youtube.com/wa...d&v=mZ_r0xH-tTg


PS. Nie wiem czemu, ale wyświetlanie chara bohatera nie działa.
 
 
kolkav5 




Preferowany:
RPG Maker VX

Pomóg³: 2 razy
Do³±czy³: 28 Gru 2011
Posty: 76
Wys³any: Pon 25 Cze, 2012 17:18
Nie wiem, czy takie przydatne.
Może daje efekt ciekawy, ale wątpię by wszystkim chciało się czekać.
Dla mnie 6/10 nooo może 6.5/10. :lol:
________________________
Jeśli pomogłem daj "Pomógł"

Bardzo proszÄ™ oceniajcie http://www.ultimateam.pl/viewtopic.php?t=9314

Znowu Powracam!
 
 
Avara 





Pomog³a: 32 razy
Do³±czy³a: 15 Gru 2010
Posty: 331
Sk±d: Å�ódź
Wys³any: Pon 25 Cze, 2012 19:20
kolkav5 napisa³/a:
Nie wiem, czy takie przydatne.
Może daje efekt ciekawy, ale wątpię by wszystkim chciało się czekać.
Dla mnie 6/10 nooo może 6.5/10. :lol:

Jak Ty coś powiesz... :kable: Właśnie o to chodzi, że i tak się czeka, a przyjemniejsze dla oka.
Spoko skrypt.
________________________


Drakensang - przeglÄ…darkowa gra RPG online
Spoiler:

 
 
 
INRE 




Preferowany:
RPG Maker VX

Ranga RM:
1 gra

Pomóg³: 1 raz
Do³±czy³: 03 Sie 2010
Posty: 45
Wys³any: Wto 03 Lip, 2012 17:49
Avara napisa³/a:

Jak Ty coś powiesz... :kable: Właśnie o to chodzi, że i tak się czeka, a przyjemniejsze dla oka.
Spoko skrypt.


Ale ile siÄ™ wielce tak normalnie czeka? 1s, maks 2.
Dlatego bez sensu jest moim zdaniem ten skrypt, sztucznie przedłuża czas.
________________________

 
 
Avara 





Pomog³a: 32 razy
Do³±czy³a: 15 Gru 2010
Posty: 331
Sk±d: Å�ódź
Wys³any: Wto 03 Lip, 2012 17:55
Różnie to bywa. Przy bardziej zaawansowanym projekcie czas wczytywania gry może być dłuższy (nawet kilkanaście sekund) i jak już mówiłam, jest to przyjemniejsze dla oka niż czarne tło ;-) Przy mniejszych projektach oczywiście ten skrypt jest zbędny ^^
________________________


Drakensang - przeglÄ…darkowa gra RPG online
Spoiler:

 
 
 
INRE 




Preferowany:
RPG Maker VX

Ranga RM:
1 gra

Pomóg³: 1 raz
Do³±czy³: 03 Sie 2010
Posty: 45
Wys³any: Wto 03 Lip, 2012 18:03
Cóż... nie spotkałem się nigdy z tak długim wczytywaniem w RM
(nawet w dużych projektach), ale skoro twierdzisz, że tak nieraz bywa, to masz rację, że lepiej to wtedy wygląda niż czarne tło.
________________________

 
 
lolek 




Preferowany:
RPG Maker XP

Pomóg³: 2 razy
Do³±czy³: 16 Maj 2012
Posty: 34
Wys³any: Wto 03 Lip, 2012 19:10
Osobiście wole widzieć pasek ładowania nawet, jeśli gra miałaby się ładować 2-3 sekundy. Wtedy wiem, że coś się dzieje i że to coś dzieje się bardzo szybko.
________________________
ignorowani: master miller; Han Solo; Justin Biber
 
 
INRE 




Preferowany:
RPG Maker VX

Ranga RM:
1 gra

Pomóg³: 1 raz
Do³±czy³: 03 Sie 2010
Posty: 45
Wys³any: Wto 03 Lip, 2012 20:55
*Solo Lee*, ale chodzi o to, że skrypt ten wydłuża czas ładowania o kolejne sekundy, a normalnie bez skryptu to ładowanie jest praktycznie nieodczuwalne.
________________________

 
 
lolek 




Preferowany:
RPG Maker XP

Pomóg³: 2 razy
Do³±czy³: 16 Maj 2012
Posty: 34
Wys³any: Wto 03 Lip, 2012 21:27
INRE napisa³/a:
*Solo Lee*, ale chodzi o to, że skrypt ten wydłuża czas ładowania o kolejne sekundy, a normalnie bez skryptu to ładowanie jest praktycznie nieodczuwalne.


Wydłuża ładowanie gry!?! A po co?
________________________
ignorowani: master miller; Han Solo; Justin Biber
 
 
Vrona 




Preferowany:
RPG Maker VXAce

Pomóg³: 26 razy
Do³±czy³: 25 Wrz 2011
Posty: 236
Sk±d: ty siÄ™ tu wziÄ…Å‚eÅ›?
Wys³any: Czw 05 Lip, 2012 08:02
Cytat:
Może daje efekt ciekawy, ale wątpię by wszystkim chciało się czekać.


Niektórzy to mają problemy...2-3 sekundy to dla was tak długo :-| ?Przecież możecie sobie wtedy pójść wypić kakałko :kiti: Skrypt mi się podoba,wprowadza jakąś taką estetykę zapisu i wczytywania,nie tylko krótki dźwięk i przez chwilę czarny ekran.
________________________
Pomogłem daj "Pomógł",BIJAAACZ!



 
 
Wy¶wietl posty z ostatnich:   
Odpowiedz do tematu
Nie mo¿esz pisaæ nowych tematów
Nie mo¿esz odpowiadaæ w tematach
Nie mo¿esz zmieniaæ swoich postów
Nie mo¿esz usuwaæ swoich postów
Nie mo¿esz g³osowaæ w ankietach
Nie mo¿esz za³±czaæ plików na tym forum
Mo¿esz ¶ci±gaæ za³±czniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template Klam by Ayene