Показано с 21 по 24 из 24

Тема: Custom Title Menu

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Бывалый Аватар для Гость
    Информация о пользователе
    Регистрация
    21.01.2013
    Сообщений
    837
    Записей в дневнике
    4
    Репутация: 10 Добавить или отнять репутацию

    По умолчанию Custom Title Menu

    Custom Title Menu


    Автор: Kian Ni
    Версия: 1.2

    Описание:
    Позволяет заменить стандартное титульное меню, на меню с дополнительным функционалом:
    - Отображение логотипов, перед показом титульного меню.
    - Слайдшоу картинок заставки титульного меню.
    - Проигрывание случайной мелодии при запуске.
    - Картинки заместо пунктов меню.
    - Гибкая настройка.

    Инструкция по установке:
    - Вставить скрипт после Scene_Title и перед Main.
    - Распаковать содержимое архива в корень проекта, соглашаясь на замены.
    - Дальнейшие инструкции в шапке скрипта.

    Спойлер Скрипт:
    Код:
    #----------------------------------------------------------------------------
    # * [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


    Спойлер Архив:
    http://yadi.sk/d/CH3BakvkLfEwJ
    Последний раз редактировалось Гость; 04.04.2014 в 12:34.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Custom Title Menu