Плохо! Плохо!:  0
Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 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.

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

    По умолчанию

    Обновил скрипт, исправлена ошибка исчезающих команд.

  3. #3
    Маститый Аватар для Seibur
    Информация о пользователе
    Регистрация
    07.01.2012
    Адрес
    Изумрудный город
    Сообщений
    1,206
    Записей в дневнике
    3
    Репутация: 58 Добавить или отнять репутацию

    По умолчанию

    А можно каким-то образом свой пункт меню добавить, который будет отвечать переменной?
    Прохлада и спокойствие мне вполне по душе

    Спойлер :

    き っ と 、 女 の 子 は お 砂 糖 と ス パ イ ス と 素 敵 な 何 か で で き て い る。

  4. #4
    Познающий Аватар для Kian Ni
    Информация о пользователе
    Регистрация
    01.08.2013
    Сообщений
    422
    Записей в дневнике
    6
    Репутация: 7 Добавить или отнять репутацию

    По умолчанию

    Что за пункт меню то?

  5. #5
    Маститый Аватар для Seibur
    Информация о пользователе
    Регистрация
    07.01.2012
    Адрес
    Изумрудный город
    Сообщений
    1,206
    Записей в дневнике
    3
    Репутация: 58 Добавить или отнять репутацию

    По умолчанию

    Разработчик, Помощь, настройки звука и виндовс скина
    Прохлада и спокойствие мне вполне по душе

    Спойлер :

    き っ と 、 女 の 子 は お 砂 糖 と ス パ イ ス と 素 敵 な 何 か で で き て い る。

  6. #6
    Познающий Аватар для Kian Ni
    Информация о пользователе
    Регистрация
    01.08.2013
    Сообщений
    422
    Записей в дневнике
    6
    Репутация: 7 Добавить или отнять репутацию

    По умолчанию

    Эм, такие пункты добавить можно легко, но вот где ты возмешь нужные тебе сцены?

  7. #7
    Маститый Аватар для Seibur
    Информация о пользователе
    Регистрация
    07.01.2012
    Адрес
    Изумрудный город
    Сообщений
    1,206
    Записей в дневнике
    3
    Репутация: 58 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Kian Ni Посмотреть сообщение
    Эм, такие пункты добавить можно легко, но вот где ты возмешь нужные тебе сцены?
    Всмысле?
    Разтолкуй, не очень понял вопрос. Что за сцены...
    З.ы. я думал ты скрипт меню перевел, а ты сам написал. Это круто, летом покупаю электр книгу и тоже буду справку юзать.

    Хотя стой, кажется я понял. Я видел скрипт настройки звука и скина у янфлая вроде, скрипт на внедрение помощи вгменю я тоже видел, а скрипт разраб у альтаира вроде. Главное все подключить в один скрипт, и после него можно будет кинуть все нужные компоненты скриптов.
    Прохлада и спокойствие мне вполне по душе

    Спойлер :

    き っ と 、 女 の 子 は お 砂 糖 と ス パ イ ス と 素 敵 な 何 か で で き て い る。

  8. #8
    Познающий Аватар для Kian Ni
    Информация о пользователе
    Регистрация
    01.08.2013
    Сообщений
    422
    Записей в дневнике
    6
    Репутация: 7 Добавить или отнять репутацию

    По умолчанию

    Ну я говорю про то, что пункты я то добавлю, но они же должны что-то открывать(сцены) помощи, титров и прочего.

  9. #9
    Маститый Аватар для Seibur
    Информация о пользователе
    Регистрация
    07.01.2012
    Адрес
    Изумрудный город
    Сообщений
    1,206
    Записей в дневнике
    3
    Репутация: 58 Добавить или отнять репутацию

    По умолчанию

    Я тебе про это и говорю. Вот скрипт на сцену о авторе: http://www.atelier-rgss.com/RGSS/Menu/ACE_Menu19.html
    Прохлада и спокойствие мне вполне по душе

    Спойлер :

    き っ と 、 女 の 子 は お 砂 糖 と ス パ イ ス と 素 敵 な 何 か で で き て い る。

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

    По умолчанию

    Обновил скрипт до версии 1.1.

Страница 1 из 3 123 ПоследняяПоследняя

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

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

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

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

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

Ваши права

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