mcgluszak

Scene Credits v1.0

Jun 21st, 2011
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 4.88 KB | None | 0 0
  1. #==============================================================================
  2. # SCENE CREDITS
  3. #-=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=-=
  4. # Autorzy: Andrzej 'mc' Głuszak, MiDas Mike (aka 'Emily_Konichi'), AvatarMonkeyKirby
  5. #           autor pierwszej wersji nieznany
  6. #-=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=-=
  7. # Wersja: 1.0
  8. #-=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=-=
  9. # Opis: Scena wyświtlająca przewijający się tekst. Sprawdzi się zarówno jako
  10. #         Creditsy jak i wprowadzenie.
  11. #-=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=-=
  12. # Instrukcja: $scene = Scene_Credits.new(nazwa tekstu z Gluszak::Scene_Credits,
  13. #               array zawierający nazwy teł (bez rozszerzeń) w  Graphics/Pictures,
  14. #               scena, do której powraca się po obejrzeniu creditsów.)
  15. #
  16. #             Konfiguracja tekstów:
  17. #               \\c[numer z listy Gluszak::Scene_Credits::COLORS, od jeden wzwyż]
  18. #               \\s[rozmiar czcionki]
  19. #               \\f[numer z listy Gluszak::Scene_Credits::FONTS, od jeden wzwyż]
  20. #-=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=-=
  21. # Kompatybilność: Nie testowany z SDK. Powinien być kompatybilny ze wszystkim.
  22. #-=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=-=
  23. # Licencja: CREATIVE COMMONS Uznanie autorstwa 3.0 Unported (CC BY 3.0)
  24. #           Wolno: kopiować, rozpowszechniać, odtwarzać i wykonywać utwór,
  25. #                  tworzyć utwory zależne
  26. #           Na następujących warunkach: Uznanie autorstwa —
  27. #                   należy wpisać twórców skryptu
  28. #                   (mcgluszak, AvatarMonkeyKirby, Emily_Konichi)
  29. #                   do credits (podziękowań).
  30. #-=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=--=-=-=-=-=-=
  31. # Zmiany: v?.?, ?          [autor nieznany]
  32. #         v?.?, ?          [MiDas Mike (aka 'Emily_Konichi')]
  33. #         v?.?, 03/06/2007 [AvatarMonkeyKirby]
  34. #         v1.0, 21/06/2010 [mcgluszak]
  35. #==============================================================================
  36.  
  37. # Konfiguracja
  38. module Gluszak
  39.   module Scene_Credits
  40.     FONTS = ["Times New Roman","Arial"] # czcionka
  41.     SIZE = 24 # domyślny rozmiar czcionki
  42.     COLORS = [Color.new(255,255,255, 255),Color.new(22,11,100),Color.new(200,0,0,150)] # domyślny kolor tekstu
  43.     SPEED = 3 # prędkość przewijania (1-5)
  44.    
  45.    
  46. # Konfiguracja tekstów
  47. TEXT1 = "
  48. \\c[2] tekst
  49.  
  50. \\c[3] \\s[78] duży tekst
  51.  
  52. \\s[15] elo
  53. Elo
  54. \\f[2] \\s[40]test tekstu
  55. tekst testu
  56. koniec"
  57.  
  58. TEXT2 = "
  59. To jest tekst"
  60. # Koniec konfiguracji tekstów
  61.   end
  62. end
  63.  
  64. # Koniec konfiguracji
  65.  
  66. class Scene_Credits
  67.  
  68.   include Gluszak::Scene_Credits
  69.  
  70.   def initialize(text=TEXT1, backgrounds=[], scene=Scene_Title)
  71.     @scene = scene
  72.     @text = text
  73.     @backgrounds = backgrounds
  74.   end
  75.  
  76.   def main
  77.     @sprite = Sprite.new
  78.     @frames = 0
  79.     @wait = 7
  80.     @sprite.bitmap = RPG::Cache.picture(@backgrounds[0]) if @backgrounds.size != 0
  81.  
  82.     credit_lines = @text.split(/\n/)
  83.     credit_bitmap = Bitmap.new(640,96 * credit_lines.size)
  84.     credit_lines.each_index {|i|
  85.    
  86.       line = credit_lines[i]
  87.      
  88.       size = SIZE
  89.       line.gsub!(/\\[Ss]\[(\d+)\]/) {size = $1.to_i if $1; ''}
  90.       credit_bitmap.font.size = size
  91.      
  92.       font = FONTS[0]
  93.       line.gsub!(/\\[Ff]\[(\d+)\]/) {font = FONTS[$1.to_i - 1] if $1; ''}
  94.       credit_bitmap.font.name = font
  95.      
  96.       color = COLORS[0]
  97.       line.gsub!(/\\[Cc]\[(\d+)\]/) {color = COLORS[$1.to_i-1];''}
  98.       credit_bitmap.font.color = color
  99.       credit_bitmap.draw_text(0,i * 32,640,96,line,1)
  100.     }
  101.    
  102.     @credit_sprite = Sprite.new(Viewport.new(0,50,640,380))
  103.     @credit_sprite.bitmap = credit_bitmap
  104.     @credit_sprite.z = 9998
  105.     @credit_sprite.oy = -430
  106.     @frame_index = 0
  107.    
  108.     Audio.me_stop
  109.     Audio.bgs_stop
  110.     Audio.se_stop
  111.     Graphics.transition
  112.  
  113.     loop do
  114.       Graphics.update
  115.       Input.update
  116.       update
  117.       break if $scene != self
  118.     end
  119.    
  120.     Graphics.freeze
  121.     @sprite.dispose
  122.     @credit_sprite.dispose
  123.   end
  124.  
  125.   def last?
  126.     if @frame_index > (@credit_sprite.bitmap.height + 500)
  127.        $scene = @scene.new
  128.        Audio.bgm_fade(10000)
  129.       return true
  130.     end
  131.     return false
  132.   end
  133.  
  134.   def cancel?
  135.     if Input.trigger?(Input::C)
  136.       $scene = @scene.new
  137.       return true
  138.     end
  139.     return false
  140.   end
  141.  
  142.   def update
  143.     if @backgrounds.size != 0
  144.       @frames += 1
  145.       if @frames >= @wait
  146.         @frames = 0
  147.         @backgrounds.push @backgrounds[0]
  148.         @backgrounds.delete_at 0
  149.         @sprite.bitmap = RPG::Cache.picture(@backgrounds[0])
  150.       end
  151.     end
  152.     return if cancel?
  153.     return if last?
  154.     @credit_sprite.oy += SPEED
  155.     @frame_index += SPEED
  156.   end
  157.  
  158. end
Advertisement
Add Comment
Please, Sign In to add comment