Слайды, сделанные лично мной.
.
=begin
Слайды
Автор: strelokhalfer
Требования: Мозг и прямые руки :)
Описание:
Упращает вывод картинок, делает возможным их вывод перед
главным меню или перед концом игры.
Лицензия:
Бесплатно для для не- и комерческих проектов,
но вы ОБЯЗАНЫ указать меня в благодарностях.
Использование:
Создайте свой массив по образцам ниже, и вызвоите его
slides(имя_массива)
В массиве есть два типа данных, фоновая музыка и картинка.
Фоновая музыка указывается строкой
["BGM", "Имя", громкость, темп]
BGM - Указывает, что это музыка
Имя - Имя музыки из папки 'Audio/BGM/'
Громкость - от 0 до 100
Темп - от 50 до 150(100 стандарт)
Картинка определяется
["PIC", "Имя", время, переключатель, "Альтернатива"]
Имя - Имя картинки из папки, указанной в Slide_Path
Время - как долго будет висеть картинка
Переключатель - номер переключателя, картинка будет видна,
если он включон, необязателен.
"Альтернатива" - имя картинки, если переключатель выключен, необязателен.
Для конца игры вызовите
end_game
Для отключения слайдов в начале игры, заккоментируйте строки в Start_scene
=end
module Halfer_Slide
Slide_Path = "Graphics/Slides/"
Transition = 60
# Массивы ниже могут быть пусты, НО ОБЯЗАТЕЛЬНЫ!
End_scene = [ #Слайды для концовок
["BGM", "Scene3", 100, 100],
["PIC", "End1", 2],
["PIC", "End2_1", 2, 1, "End2_2"],
["BGM", "Scene2", 100, 100],
["PIC", "End3_1", 2, 2, "End3_2"],
["PIC", "End4", 2]
]
Start_scene = [ #Слайды для показа перед титульным меню
["PIC", "Start1", 2],
["PIC", "Start2", 2]
]
# Ваши шаблоны
Dali = [
["PIC", "Dali1", 2],
["PIC", "Dali2", 2],
]
def make_slides(array)
return if array.size == 0
b_black = Bitmap.new(Graphics.width, Graphics.height)
b_black.fill_rect(0, 0, Graphics.width, Graphics.height, Color.new(0, 0, 0))
black = Sprite.new
black.bitmap = b_black
has_bgm = false
$game_message.visible = false
array.each_index { |c|
if array[c][0] == "BGM"
Audio.bgm_play('Audio/BGM/' + array[c][1], array[c][2], array[c][3], 0)
has_bgm = true
elsif array[c][0] == "PIC"
disp = false
if array[c][3] == nil
image = array[c][1]
else
if $game_switches[array[c][3]]
image = array[c][1]
else
if array[c][4] == nil
disp = true
else
image = array[c][4]
end
end
end
break if disp
Graphics.freeze
slide = Sprite.new
slide.bitmap=Cache.frame(image)
Graphics.transition Transition
loop do
Graphics.update
Input.update
if Input.trigger?(Input::B)
slide.opacity=245
end
slide.opacity<255 ? slide.opacity+=5 : break
end
sleep array[c][2]
loop do
Graphics.update
Input.update
if Input.trigger?(Input::B)
slide.opacity=15
end
slide.opacity>0 ? slide.opacity-=5 : break
end
slide.bitmap.dispose
slide.dispose
end
}
if has_bgm
RPG::BGM.stop
end
black.bitmap.dispose
black.dispose
end
end
($imported ||= {})["Halfer_Slides"] = true
module Cache
include Halfer_Slide
def self.frame(filename)
load_bitmap(Slide_Path, filename)
end
end
class Game_Interpreter
include Halfer_Slide
def slides(array)
wait 20
make_slides(array)
end
def end_game
wait 20
slides(End_scene)
SceneManager.goto(Scene_Gameover)
end
end
class << SceneManager
include Halfer_Slide
alias halfer_pre_title first_scene_class
def first_scene_class
make_slides(Start_scene)
halfer_pre_title
end
end