Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #==============================================================================
- # Napisy Końcowe [XP] / Scene Credits [XP]
- #==============================================================================
- # Autor: Ayene
- # www.ultimateam.pl
- # ver. 1.2 [15.07.2011]
- #==============================================================================
- # Skrypt wyświetla napisy końcowe (tzw. Credits).
- # Może zostać wykorzystany również do wyświetlania historii, opisu, itd.
- # Instalacja: Umieść skrypt nad Main.
- #==============================================================================
- # By wywołać napisy wpisz:
- # $scene = Scene_Credits.new
- #==============================================================================
- module AYENE
- # Ustawienia czcionki
- CREDITS_FONT = 'Comic Sans MS' # nazwa czcionki (folder Fonts)
- CREDITS_SIZE = 30 # rozmiar czcionki
- CREDITS_BOLD = true # pogrubienie
- CREDITS_ITALIC = false # kursywa
- WLH = 32 # interlinia
- # Ustawienia muzyki w tle
- CREDITS_BGM = '045-Positive03' # nazwa pliku z muzyką (folder Audio/BGM)
- CREDITS_BGM_VOLUME = 100 # głośność
- # Ustawienia tła obrazkowego (folder Graphics/Pitures)
- BACKGROUND_IMAGE = 'back' # nazwa tła; '' wyłącza tło
- BACKGROUND_OPACTIY = 255 # przezroczystość tła
- # Formatowanie tesktu
- # Poniżej można dodać własne kolory tekstu
- TEXT_COLOR = { # 'kod' => kolor
- '' => Color.new(255, 255, 255, 255), # <- nie usuwać - kolor domyślny
- '<r>' => Color.new(255, 126, 126, 255),
- '<y>' => Color.new(255, 253, 92, 255),
- '<g>' => Color.new(92, 255, 150, 255),
- '<k>' => Color.new(0, 255, 0, 255)
- }
- CREDITS_OUTLINE = Color.new(0, 0, 0, 255) # kolor obwódki tekstu
- CREDITS_SHADOW = Color.new(0, 0, 0, 100) # kolor cienia
- BUTTON_CLOSE = true # włącza możliwość przewinięcia sceny za pomocą przycisku
- NEXT_SCENE = Scene_Map # kolejna scena
- PREVIOUS_SCENE = Scene_Title # poprzednia scena
- # Dodawanie obrazków do tekstu
- # Żeby obrazek nie nachodził na tekst wystarczy - pod linijką z kodem na jego
- # wyświetlenie - dać większy odstęp.
- IMAGE = { # 'kod' => nazwa obrazka
- '<logo>' => 'demonlogo',
- '<ranga>' => 'napis1',
- }
- #--------------------------
- # Tekst
- #--------------------------
- CREDIT = <<_CREDIT_
- <logo>
- <y>Poradnik RPG maker XP odcinek 19
- <r>~ Autor skryptu ~
- -Ayene-
- <r>~ Autor poradnika ~
- -Demon-
- <g>www.ultimateam.pl
- <g>www.youtube.com/user/Demonicskyers
- <k>Dziękuję za obejrzenie tego odcinka
- <k>zapraszam do kolejnych filmików
- <k>i... narazie ;)
- <ranga>
- _CREDIT_
- #--------------------------
- # Koniec tekstu
- #--------------------------
- end
- #==============================================================================
- # ** Bitmap
- #==============================================================================
- class Bitmap
- include AYENE
- #--------------------------------------------------------------------------
- # * Draw Text Outline
- #--------------------------------------------------------------------------
- def draw_text_outline(x, y, width, height, text, align, color)
- font.name = CREDITS_FONT
- font.size = CREDITS_SIZE
- font.bold = CREDITS_BOLD
- font.italic = CREDITS_ITALIC
- font.color = CREDITS_OUTLINE
- draw_text(x + 1, y, width, height, text, align)
- draw_text(x - 1, y, width, height, text, align)
- draw_text(x, y + 1, width, height, text, align)
- draw_text(x, y - 1, width, height, text, align)
- font.color = CREDITS_SHADOW
- draw_text(x + 2, y + 8, width, height, text, align)
- font.color = color
- draw_text(x, y, width, height, text, align)
- end
- end
- #==============================================================================
- # ** Scene_Credits
- #==============================================================================
- class Scene_Credits
- include AYENE
- #--------------------------------------------------------------------------
- # * Main Processing
- #--------------------------------------------------------------------------
- def main
- color = []
- image = []
- if CREDITS_BGM != ''
- Audio.bgm_play("Audio/BGM/" + CREDITS_BGM, CREDITS_BGM_VOLUME, 100)
- end
- if BACKGROUND_IMAGE != ''
- @background = Sprite.new
- @background.bitmap = RPG::Cache.picture(BACKGROUND_IMAGE)
- @background.opacity = BACKGROUND_OPACTIY
- end
- text = CREDIT.split(/\n/)
- @credits = Sprite.new
- @credits.bitmap = Bitmap.new(640, WLH * text.size)
- @credits.z = 999
- @credits.oy = -470
- text.each_index { |i|
- color[i] = TEXT_COLOR[0]
- TEXT_COLOR.each { |st, c|
- if text[i].include?(st)
- text[i].sub!(st, '')
- color[i] = c
- end
- }
- IMAGE.each { |st, im|
- if text[i].include?(st)
- text[i].sub!(st, '')
- image[i] = im
- end
- }
- if image[i] != nil
- bitmap = RPG::Cache.picture(image[i])
- cw = bitmap.width
- ch = bitmap.height
- src_rect = Rect.new(0, 0, cw, ch)
- @credits.bitmap.blt((640 - cw) / 2, i*WLH, bitmap, src_rect)
- end
- @credits.bitmap.draw_text_outline(0,i*WLH,640, 32,text[i],1,color[i])
- }
- Graphics.transition
- loop do
- Graphics.update
- Input.update
- update
- if $scene != self
- break
- end
- end
- Graphics.freeze
- unless @background.nil?
- @background.bitmap.dispose
- @background.dispose
- end
- @credits.bitmap.dispose
- @credits.dispose
- end
- #--------------------------------------------------------------------------
- # * Frame Update
- #--------------------------------------------------------------------------
- def update
- @credits.oy += 1
- if BUTTON_CLOSE
- if Input.trigger?(Input::C)
- next_scene
- elsif Input.trigger?(Input::B)
- previous_scene
- end
- end
- if @credits.oy >= @credits.bitmap.height
- next_scene
- end
- end
- #--------------------------------------------------------------------------
- # * Next Scene
- #--------------------------------------------------------------------------
- def next_scene
- Audio.bgm_fade(1500) if CREDITS_BGM != ''
- $scene = eval("#{NEXT_SCENE}.new")
- end
- #--------------------------------------------------------------------------
- # * Previous Scene
- #--------------------------------------------------------------------------
- def previous_scene
- Audio.bgm_fade(1500) if CREDITS_BGM != ''
- $scene = eval("#{PREVIOUS_SCENE}.new")
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement