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