Код:
	#----------------------------------------------------------------------------
# * [ACE] Custom Title Scene
#----------------------------------------------------------------------------
# * Автор - Kian Ni
# * Специально для http://rpg-maker.info
# * Версия: 1.2
# * Релиз: 02/04/2014
# * Использование:
# * 1) Вставьте код ниже Scene_Title (например, в раздел Materials)
# * 2) В папку titles1 добавьте картинки размером 544х416(или 640х480) с названиями
# * от 1.png до ... сколько есть, не прерывая последовательность
# * 3) Задайте в скрипте число SLIDE
# * 4) Запустите, задайте по вкусу скорость промотки в UPD
# *    (60 ~ 1 секунда)
# * 5) В папку Audio/BGM/Title/ добавьте песни в формате .ogg, с названием
# *    от 1 до числа, указанного в количестве мелодий, не прерывая последовательности.
# * 6) В BGM укажите количество мелодий.
# 
# * Нового в 1.2: Добавлены новые возможности настройки меню,
# * а так же возможность использовать ВПРАВО и ВЛЕВО для перехода между командами.
#----------------------------------------------------------------------------
###########################################################################
#Настройка основных параметров.                                           #
#-------------------------------------------------------------------------#
module VARS
  # Настройка слайдов и мелодий.
  BGM = 10  # Количество мелодий.                                    
  SLIDE = 10  # Количество слайдов.                                 
  UPD = 650  # Скорость обновления слайдов.
  SPD = 105 # Скорость смены логотипов.
  
  # Настройка логотипов.
  LOGO_SHOW = true # true/false - Показывать/ не показывать логотип.
  LOGO_1 = "Logo1" # Название первого логотипа.
  LOGO_2 = "Logo2" # Название второго логотипа.
  
  #Названия картинок команд.
  NEW = "New_Game" # Название картинки команды новой игры.
  LOAD = "Load_Game" # Название картинки команды загрузки сохранения.
  ENDS = "End_Game" # Название картинки команды выхода из игры.
  
  # Расположение пунктов меню. 
  # Координаты Новой Игры. Важно! Минимальное значение Y это 210.
  NEW_X = 12
  NEW_Y = 210
  # Координаты Загрузки.
  LOAD_X = 12
  LOAD_Y = 265
  # Координаты Выхода.
  END_X = 8
  END_Y = 315
  
  # Порядок расположения пунктов меню: 0 - первая команда, 1 - вторая, 2 - третья. 
  POS = [
  0, # Новая игра
  1, # Загрузить игру
  2  # Выйти из игры
  ]
end
###########################################################################
class Scene_Logo < Scene_Base
  def main
      start
  end
 
  def start
    if VARS::LOGO_SHOW
      @bgm_count = VARS::BGM
      @get_next_bgm = (rand(@bgm_count) + 1).to_i
      Audio.bgm_play("Audio/BGM/Title/#{@get_next_bgm}", 100)
      $bgm_on = false
      sprite = Sprite.new
      Graphics.wait(25)
      Graphics.fadeout(0)
      sprite.bitmap = Cache.system(VARS::LOGO_1)
      Graphics.fadein(30)
      Graphics.wait(VARS::SPD)
      Graphics.fadeout(30)
      sprite.bitmap = Cache.system(VARS::LOGO_2)
      Graphics.fadein(30)
      Graphics.wait(VARS::SPD)
      Graphics.fadeout(30)
      sprite.dispose
      SceneManager.goto(Scene_Title)
    else
      $bgm_on = true
      SceneManager.goto(Scene_Title)
    end
  end
end
module SceneManager
 
  def self.first_scene_class
            $BTEST ? Scene_Battle : Scene_Logo
  end
end
 
class Scene_Title < Scene_Base
 
  def start
    super
    SceneManager.clear
    Graphics.freeze
    get_var
    create_background
    create_command_new_game
    create_command_load_game
    create_command_end_game
    var_ini
    play_title_music if $bgm_on
    $bgm_on = true
    @load_scene = false
  end
  
  def terminate
    super
    SceneManager.snapshot_for_background
    dispose_background
    dispose_command
  end
 
  def update
    super
    to_select
    opacity_command
    @time += 1
    create_background if @time == @upd_rate
  end
 
  def get_var                                                
    @bgm_count = VARS::BGM                                     
    @slide_count = VARS::SLIDE                                  
    @upd_rate = VARS::UPD 
  end                                                                       
 
  def create_background
    @sprite1 = Sprite.new
    @get_next_pic = ((rand(@slide_count) + 1).to_i).to_s
    @sprite1.bitmap = Cache.title1(@get_next_pic)
    center_sprite(@sprite1)
    @time = 0
  end
 
  def dispose_background
    @sprite1.bitmap.dispose
    @sprite1.dispose
  end
  
  def center_sprite(sprite)
    sprite.ox = sprite.bitmap.width / 2
    sprite.oy = sprite.bitmap.height / 2
    sprite.x = Graphics.width / 2
    sprite.y = Graphics.height / 2
  end
 
  def play_title_music
    @get_next_bgm = (rand(@bgm_count) + 1).to_i
    Audio.bgm_play("Audio/BGM/Title/#{@get_next_bgm}", 100)
    RPG::BGS.stop
    RPG::ME.stop
    return
  end
 
  def var_ini
    opacity_command
    if DataManager.save_file_exists?
      @index = VARS::POS[1]
    else
      @index = VARS::POS[0]
    end
    @item_max = 3
    @col_max = 1
  end
 
  def create_command_new_game
    @new_game = Sprite.new
    @new_game.bitmap = Bitmap.new("Graphics/System/#{VARS::NEW}")
    @new_game.x = VARS::NEW_X
    @new_game.y = VARS::NEW_Y
    return
  end
 
  def create_command_load_game
    @load_game = Sprite.new
    @load_game.bitmap = Bitmap.new("Graphics/System/#{VARS::LOAD}")
    @load_game.x = VARS::LOAD_X
    @load_game.y = VARS::LOAD_Y
    return
  end
 
  def create_command_end_game
    @end_game = Sprite.new
    @end_game.bitmap = Bitmap.new("Graphics/System/#{VARS::ENDS}")
    @end_game.x = VARS::END_X
    @end_game.y = VARS::END_Y
    return
  end
 
  def opacity_command
    if @load_scene
      @new_game.opacity = 0
      @load_game.opacity = 0
      @end_game.opacity = 0
    else
     @new_game.opacity = 255 if @index == VARS::POS[0]
     @new_game.opacity = 155 if @index != VARS::POS[0]
     @load_game.opacity = 255 if @index == VARS::POS[1]
     @load_game.opacity = 155 if @index != VARS::POS[1]
     @end_game.opacity = 255 if @index == VARS::POS[2]
     @end_game.opacity = 155 if @index != VARS::POS[2]
    end
  end
 
  def dispose_command
    @load_game.bitmap.dispose
    @load_game.dispose
    @new_game.bitmap.dispose
    @new_game.dispose
    @end_game.bitmap.dispose
    @end_game.dispose
  end
 
  def to_down
    if @index < (@item_max - @col_max)
      Sound.play_cursor
      @index = (@index + @col_max)
    else
      if @index == (@item_max - @col_max)
        Sound.play_cursor
        @index = 0
      end
    end
  end
 
  def to_up
    if @index >= @col_max
      Sound.play_cursor
      @index = (@index - @col_max)
    else
      if @index < @col_max
        Sound.play_cursor
        @index = 2
      end
    end
  end
 
  def to_select
    to_up    if Input.repeat?(:UP) or Input.repeat?(:LEFT)
    to_down  if Input.repeat?(:DOWN) or Input.repeat?(:RIGHT)
    command_continue if Input.press?(:C) && @index == VARS::POS[1]
    command_new_game if Input.press?(:C) && @index == VARS::POS[0]
    command_shutdown if Input.press?(:C) && @index == VARS::POS[2]
  end
 
  def command_new_game
    Sound.play_ok
    DataManager.setup_new_game
    @new_game.opacity = 0
    @load_game.opacity = 0
    @end_game.opacity = 0
    fadeout_all
    $game_map.autoplay
    SceneManager.goto(Scene_Map)
  end
 
  def command_continue
    if DataManager.save_file_exists?
      Sound.play_ok
      @new_game.opacity = 0
      @load_game.opacity = 0
      @end_game.opacity = 0
      SceneManager.call(Scene_Load)
    else
      Sound.play_buzzer
    end
  end
 
  def command_shutdown
    Sound.play_ok
    @new_game.opacity = 0
    @load_game.opacity = 0
    @end_game.opacity = 0
    fadeout_all
    SceneManager.exit
  end
 
end
 
Социальные закладки