Advertisement
Demonicskyers

Creditsy

Jun 4th, 2013
529
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 6.90 KB | None | 0 0
  1. #==============================================================================
  2. # Napisy Końcowe [XP] / Scene Credits [XP]      
  3. #==============================================================================
  4. # Autor: Ayene
  5. # www.ultimateam.pl
  6. # ver. 1.2 [15.07.2011]
  7. #==============================================================================
  8. # Skrypt wyświetla napisy końcowe (tzw. Credits).
  9. # Może zostać wykorzystany również do wyświetlania historii, opisu, itd.
  10. # Instalacja: Umieść skrypt nad Main.
  11. #==============================================================================
  12. # By wywołać napisy wpisz:
  13. #     $scene = Scene_Credits.new
  14. #==============================================================================
  15.  
  16. module AYENE
  17.  
  18.   # Ustawienia czcionki
  19.   CREDITS_FONT = 'Comic Sans MS'    # nazwa czcionki (folder Fonts)
  20.   CREDITS_SIZE = 30                 # rozmiar czcionki
  21.   CREDITS_BOLD = true               # pogrubienie
  22.   CREDITS_ITALIC = false            # kursywa
  23.   WLH = 32                          # interlinia
  24.  
  25.   # Ustawienia muzyki w tle
  26.   CREDITS_BGM = '045-Positive03'                  # nazwa pliku z muzyką (folder Audio/BGM)
  27.   CREDITS_BGM_VOLUME = 100          # głośność
  28.  
  29.   # Ustawienia tła obrazkowego (folder Graphics/Pitures)  
  30.   BACKGROUND_IMAGE = 'back'             # nazwa tła; '' wyłącza tło
  31.   BACKGROUND_OPACTIY = 255          # przezroczystość tła  
  32.  
  33.   # Formatowanie tesktu
  34.   # Poniżej można dodać własne kolory tekstu
  35.   TEXT_COLOR = { # 'kod' => kolor
  36.   '' => Color.new(255, 255, 255, 255),  # <- nie usuwać - kolor domyślny
  37.   '<r>' => Color.new(255, 126, 126, 255),
  38.   '<y>' => Color.new(255, 253, 92, 255),
  39.   '<g>' => Color.new(92, 255, 150, 255),
  40.   '<k>' => Color.new(0, 255, 0, 255)
  41.   }
  42.      
  43.   CREDITS_OUTLINE = Color.new(0, 0, 0, 255)     # kolor obwódki tekstu
  44.   CREDITS_SHADOW = Color.new(0, 0, 0, 100)      # kolor cienia
  45.    
  46.   BUTTON_CLOSE = true # włącza możliwość przewinięcia sceny za pomocą przycisku
  47.  
  48.   NEXT_SCENE = Scene_Map          # kolejna scena  
  49.   PREVIOUS_SCENE = Scene_Title    # poprzednia scena
  50.  
  51.   # Dodawanie obrazków do tekstu
  52.   # Żeby obrazek nie nachodził na tekst wystarczy - pod linijką z kodem na jego
  53.   # wyświetlenie - dać większy odstęp.
  54.   IMAGE = { # 'kod' => nazwa obrazka
  55.   '<logo>' => 'demonlogo',
  56.   '<ranga>' => 'napis1',  
  57.   }
  58.  
  59. #--------------------------
  60. # Tekst
  61. #--------------------------
  62. CREDIT = <<_CREDIT_
  63.  
  64. <logo>
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71. <y>Poradnik RPG maker XP odcinek 19
  72.  
  73.  
  74. <r>~ Autor skryptu ~
  75. -Ayene-
  76.  
  77. <r>~ Autor poradnika ~
  78. -Demon-
  79.  
  80. <g>www.ultimateam.pl
  81. <g>www.youtube.com/user/Demonicskyers
  82.  
  83.  
  84.  
  85. <k>Dziękuję za obejrzenie tego odcinka
  86.  
  87.  
  88. <k>zapraszam do kolejnych filmików
  89.  
  90.  
  91. <k>i... narazie ;)
  92.  
  93.  
  94. <ranga>
  95. _CREDIT_
  96. #--------------------------
  97. # Koniec tekstu
  98. #--------------------------
  99. end
  100.  
  101. #==============================================================================
  102. # ** Bitmap
  103. #==============================================================================
  104.  
  105. class Bitmap
  106.   include AYENE
  107.   #--------------------------------------------------------------------------
  108.   # * Draw Text Outline
  109.   #--------------------------------------------------------------------------
  110.   def draw_text_outline(x, y, width, height, text, align, color)
  111.     font.name = CREDITS_FONT
  112.     font.size = CREDITS_SIZE
  113.     font.bold = CREDITS_BOLD
  114.     font.italic = CREDITS_ITALIC
  115.     font.color = CREDITS_OUTLINE
  116.     draw_text(x + 1, y, width, height, text, align)
  117.     draw_text(x - 1, y, width, height, text, align)
  118.     draw_text(x, y + 1, width, height, text, align)
  119.     draw_text(x, y - 1, width, height, text, align)
  120.     font.color = CREDITS_SHADOW
  121.     draw_text(x + 2, y + 8, width, height, text, align)  
  122.     font.color = color  
  123.     draw_text(x, y, width, height, text, align)
  124.   end
  125. end
  126.  
  127. #==============================================================================
  128. # ** Scene_Credits
  129. #==============================================================================
  130.  
  131. class Scene_Credits
  132.   include AYENE  
  133.   #--------------------------------------------------------------------------
  134.   # * Main Processing
  135.   #--------------------------------------------------------------------------
  136.   def main      
  137.     color = []
  138.     image = []
  139.     if CREDITS_BGM != ''
  140.       Audio.bgm_play("Audio/BGM/" + CREDITS_BGM, CREDITS_BGM_VOLUME, 100)
  141.     end    
  142.     if BACKGROUND_IMAGE != ''
  143.       @background = Sprite.new
  144.       @background.bitmap = RPG::Cache.picture(BACKGROUND_IMAGE)
  145.       @background.opacity = BACKGROUND_OPACTIY
  146.     end  
  147.     text = CREDIT.split(/\n/)    
  148.     @credits = Sprite.new
  149.     @credits.bitmap = Bitmap.new(640, WLH * text.size)
  150.     @credits.z = 999
  151.     @credits.oy = -470    
  152.     text.each_index { |i|
  153.       color[i] = TEXT_COLOR[0]    
  154.       TEXT_COLOR.each { |st, c|
  155.         if text[i].include?(st)      
  156.           text[i].sub!(st, '')
  157.           color[i] = c          
  158.         end        
  159.       }
  160.       IMAGE.each { |st, im|
  161.         if text[i].include?(st)      
  162.           text[i].sub!(st, '')
  163.           image[i] = im          
  164.         end        
  165.       }
  166.       if image[i] != nil
  167.         bitmap = RPG::Cache.picture(image[i])
  168.         cw = bitmap.width
  169.         ch = bitmap.height
  170.         src_rect = Rect.new(0, 0, cw, ch)
  171.         @credits.bitmap.blt((640 - cw) / 2, i*WLH, bitmap, src_rect)        
  172.       end
  173.       @credits.bitmap.draw_text_outline(0,i*WLH,640, 32,text[i],1,color[i])    
  174.     }        
  175.    
  176.     Graphics.transition  
  177.     loop do    
  178.       Graphics.update    
  179.       Input.update    
  180.       update    
  181.       if $scene != self
  182.         break
  183.       end
  184.     end  
  185.     Graphics.freeze
  186.     unless @background.nil?
  187.       @background.bitmap.dispose
  188.       @background.dispose
  189.     end
  190.     @credits.bitmap.dispose
  191.     @credits.dispose
  192.   end
  193.   #--------------------------------------------------------------------------
  194.   # * Frame Update
  195.   #--------------------------------------------------------------------------
  196.   def update
  197.     @credits.oy += 1
  198.     if BUTTON_CLOSE
  199.       if Input.trigger?(Input::C)      
  200.         next_scene              
  201.       elsif Input.trigger?(Input::B)
  202.         previous_scene
  203.       end
  204.     end  
  205.     if @credits.oy >= @credits.bitmap.height
  206.       next_scene
  207.     end  
  208.   end
  209.   #--------------------------------------------------------------------------
  210.   # * Next Scene
  211.   #--------------------------------------------------------------------------
  212.   def next_scene
  213.     Audio.bgm_fade(1500) if CREDITS_BGM != ''
  214.     $scene = eval("#{NEXT_SCENE}.new")
  215.   end
  216.   #--------------------------------------------------------------------------
  217.   # * Previous Scene
  218.   #--------------------------------------------------------------------------
  219.   def previous_scene
  220.     Audio.bgm_fade(1500) if CREDITS_BGM != ''
  221.     $scene = eval("#{PREVIOUS_SCENE}.new")    
  222.   end
  223. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement