Ogłoszenie 

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


Administracja Forum


Poprzedni temat «» Następny temat
Splash Screen
Autor Wiadomość
Angius 

Nie wkurzać



Preferowany:
RPG Maker VX

Pomógł: 104 razy
Dołączył: 30 Paź 2010
Posty: 1276
Skąd: wROCK
Wysłany: Sro 04 Maj, 2011 18:09
Splash Screen
Splash Screen

Opis:
Skrypt dodaje do naszej gry SplashScreen, czyli grafikę z muzyczką, która wyświetla się na ekranie, gdy uruchomimy grę.

Info:
Autorzy - D�vic & Isaacsol
Wersja - 2.0.2
Tłumaczenie - Angius

Grafiki:
Jaka nam się żywnie podoba, format *.png.
Umieszczona w Graphics/System

Screeny:
Spoiler:


Przy okazji zobaczycie kawałek mojego nowego projektu :P
Cóż... Sam myślałem, że będzie to nieco bardziej imponujące... Ale może się przydać jako coś w stylu "Uwaga, ta gra zawiera treści bla bla bla" :)



Skrypt:
Spoiler:

Kod:
#==============================================================================
# ** Scene_Splash 2.0.2 RGSS2
# D�vic - Programming and debugging
# Isaacsol - Supporting and debugging
#==============================================================================
#   Na polski przełożył i konfigurację dopisał
#                                                                   ~~ANGIUS~~
#==============================================================================
# Version history:
#   ~ 07.03.08 :: First version released with fade effects, image delaying and
#                 unlimited number of logo images.
#   ~ 10.03.08 :: Version 1.5 released with beta Audio processing; plays all
#                 types of Audio (BGM, BGS, SE & ME), but just one through all
#                 the Scene. It is possible to disable Audio.
#   ~ 24.03.08 :: Script rewrite - beta version 1.8a for animation beta
#                 function (not released beta-version).
#   ~ 25.03.08 :: Script second rewrite - non-released 1.9 beta version in tests
#                 for plain image, animation and audio compatibility.
#   ~ 25.03.08 :: Release of version 2.0! Features:
#                 - [!] Change in the Script's name to Scene_Splash [!]
#                 - Script rewritten; more clear and pure
#                 - New customisation system; unlimited amount of images and audio
#                 - Audio playing system more deep
#                 - Can be disabled in playtest
#                 - Animation compatible
#                 - New Wait engine; dœs not modify Graphics Module anymore
#                 - BreakSplash engine improved; break keys customisable
#   ~ 25.03.08 :: Version 2.0.1 - Slight edit on Scene_Title; the Splash
#                 Screen will not appear more than one time per initialisation.
#                 (Function called OneTimeSplash)
#   ~ 30.03.08 :: Version 2.0.2 - Fixed non-stopable sound bug.
#------------------------------------------------------------------------------
#   Pokazuje Splashscreen po uruchomieniu. Kompatybilne z RGSS2!
#   Pytania kierować do stosownego wątku, a w ostateczności na
#   mój mail: phabio_almeida@hotmail.com
#------------------------------------------------------------------------------
#   Angielski wątek:
#   http://www.rpgmakervx.net/index.php?showtopic=974
#   Portugalski wątek:
#   http://www.rpgmakerbrasil.com/forum/f43/rmvx-scene-logo-1-7-rgss2-552.html
#   Niemiecki wątek:
#   http://forum.rpgvx.net/index.php?showtopic=481
#   Polski wątek:
#   http://www.ultimateam.pl/viewtopic.php?p=54538#54538
#------------------------------------------------------------------------------
#                                                          Respectfully,
#                                                                      D�vic.
#==============================================================================
#                                                                ~~KONFIGURACJA~~
#==============================================================================
class Scene_Splash
#==============================================================================
#                                                                        OGÓLNE
#==============================================================================
  DisableInDebug = true #Wyłączyć wyświetlanie przy testowaniu gry?
  BreakSplash = true      #Wyłączyć możliwość ominięcia SplashScreenu?
  OneTimeSplash = true  #wyłącza Ekran powitalny w graniu więcej niż raz na realizację. (?)
 
  def initialize                  # Nie usuwać!
#==============================================================================
#                                                                       ATRYBUTY
#==============================================================================
#  Uzupełniać wg. wzoru [czas wyświetlania, nazwa_grafiki [, typ_dźwięku, nazwa_dźwięku, głośność, nastrojenie]]
#  Dla animacji: [[ilość_klatek, czas_wyświetlania, czas_ostatniej], nazwa_grafiki [, typ_dźwięku, nazwa_dźwięku, głośność, nastrojenie]]
#  Ważne, by elementy tekstowe były umieszczone w cudzysłowie "nazwa"
    @logo = [
       [120, "Splash", "SE", "Storms", 100, 100]
      ]
#  Ile czasu ma zanikać i pojawiać się splashscreen? Nie ma limitu czasu, ale najlepiej około 20-stu klatek     
    @fade_delay = 20
#  Przycisk, którym przerywamy wyświetlanie Splasha
#  Wg. wzoru 'input.press?(Input::X)'
#  Jeśli chcemy dodać więcej możliwości, wstawiamy je po ||
    @break = 'Input.press?(Input::B) || Input.press?(Input::C)'
#===============================================================================
#                                                             ~~NIE TYKAĆ!!!~~
#===============================================================================
    main
  end
 
  def main
    @logo.each { |a|
      unless a.length < 3
        case a[2]
        when 'BGM'
          Audio.bgm_play("Audio/BGM/#{a[3]}", a[4], a[5])
        when 'BGS'
          Audio.bgs_play("Audio/BGS/#{a[3]}", a[4], a[5])
        when 'ME'
          Audio.me_play("Audio/ME/#{a[3]}", a[4], a[5])
        when 'SE'
          Audio.se_play("Audio/SE/#{a[3]}", a[4], a[5])
        end
      end
      if a[0].kind_of?(Array)
        sprite = Sprite.new
        sprite.bitmap = Cache.system("#{a[1]}1")
        Graphics.transition
        Graphics.fadein(@fade_delay)
        for j in 2..(a[0][0] - 1)
          sprite = Sprite.new
          sprite.bitmap = Cache.system(a[1] + j.to_s)
          a[0][1].times {
            Graphics.update
            Input.update
            (break if eval(@break)) if BreakSplash
           }
          (break if eval(@break)) if BreakSplash
          sprite.dispose
        end
        unless eval(@break)
          sprite = Sprite.new
          sprite.bitmap = Cache.system(a[1] + a[0][0].to_s)
          Graphics.wait(a[0][2])
        end
        audio_stop(a)
        Graphics.fadeout(@fade_delay)
        sprite.dispose
      else
        sprite = Sprite.new
        sprite.bitmap = Cache.system(a[1])
        Graphics.transition
        Graphics.fadein(@fade_delay)
        a[0].times {
          Graphics.update
          Input.update
          (break if eval(@break)) if BreakSplash
         }
        audio_stop(a)
        Graphics.fadeout(@fade_delay)
        sprite.dispose
      end
      Graphics.freeze
     }
   end
   
   def audio_stop(a)
    unless a.length < 3
      case a[2]
      when 'BGM'
        Audio.bgm_fade(@fade_delay)
      when 'BGS'
        Audio.bgs_fade(@fade_delay)
      when 'ME'
        Audio.me_fade(@fade_delay)
      when 'SE'
        Audio.se_stop
      end
    end
  end
end

class Scene_Title
  alias old_start start
  def start
    unless $splash
      $splash = true if Scene_Splash::OneTimeSplash
      if Scene_Splash::DisableInDebug
        Scene_Splash.new unless $TEST
      else
        Scene_Splash.new
      end
    end
    old_start
  end
end


Demo:
Chyba zbędne, ale jeśli będzie trzeba, to coś zamieszczę...

Spoiler:


Bug:
SyntaxError w 67 linijce (ustawienia splasha). Wygląda na to, że autor coś namieszał w definiowaniu tego fragmentu, może ktoś sprawdzi anglojęzyczną konfigurację i poprawi:
Naprawione dzięki Ayene :-)

________________________
"Na trolla pewne są tylko dwie pewne metody, jedna samopowtarzalna i druga, wymagająca przeładowania ręcznego."


Ostatnio zmieniony przez Angius Sro 04 Maj, 2011 19:06, w całości zmieniany 3 razy  
 
 
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