Domilos - Pon 25 Cze, 2012 16:26 Temat postu: 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.
#--------------------------------------------------------------------------
# ● 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
#--------------------------------------------------------------------------
# ● Main
#--------------------------------------------------------------------------
def main
Graphics.transition
execute_loop
execute_dispose
end
#--------------------------------------------------------------------------
# ● Execute Loop
#--------------------------------------------------------------------------
def execute_loop
loop do
Graphics.update
update
if $scene != self
break
end
end
end
#--------------------------------------------------------------------------
# ● 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
#--------------------------------------------------------------------------
# ● 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
#--------------------------------------------------------------------------
# ● 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
#=============================================================================
# ■ 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
PS. Nie wiem czemu, ale wyświetlanie chara bohatera nie działa.kolkav5 - 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. Avara - 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.
Jak Ty coś powiesz... Właśnie o to chodzi, że i tak się czeka, a przyjemniejsze dla oka.
Spoko skrypt.INRE - Wto 03 Lip, 2012 17:49
Avara napisa³/a:
Jak Ty coś powiesz... 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 - 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 ^^INRE - 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 - 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.INRE - 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 - 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?Vrona - 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 Skrypt mi się podoba,wprowadza jakąś taką estetykę zapisu i wczytywania,nie tylko krótki dźwięk i przez chwilę czarny ekran.