Плохо! Плохо!:  0
Показано с 1 по 9 из 9

Тема: Урок 2: Делаем компактное меню для АсеBX

  1. #1
    Хранитель Аватар для Темный
    Информация о пользователе
    Регистрация
    13.05.2011
    Сообщений
    2,449
    Записей в дневнике
    20
    Репутация: 50 Добавить или отнять репутацию

    По умолчанию Урок 2: Делаем компактное меню для АсеBX

    Посмотрел я игру Kujaku все мне в ней понравилось правда было пару зависаний когда слушал
    песню и в последней сцене. Но это мелочь) Вот, что вызвало у меня в ужас так это меню.

    Согласитесь ну не смотрится оно хоть убей!
    А я как раз хотел написать урок по окнам меню вот и попытаюсь сделать более компактное
    и приятное меню.
    Для начало не много теории Меню в Асе состоит в базовом варианте из трех окон.
    Окно команд - Window_MenuCommand
    Окно Статуса - Window_MenuStatus
    Окно Золота - Window_Gold
    Что нам в принципе надо сделать, что бы получилось компактное меню?
    Первое это убрать окна статуса!
    Перейдем к делу. Откроем базу скриптов и найдем скрипт Scene_Menu
    И сразу видим строчку create_status_window вот ее мы и отключим!
    Код:
    #==============================================================================
    # ** Scene_Menu
    #------------------------------------------------------------------------------
    #  This class performs the menu screen processing.
    #==============================================================================
    
    class Scene_Menu < Scene_MenuBase
      #--------------------------------------------------------------------------
      # * Start Processing
      #--------------------------------------------------------------------------
      def start
        super
        create_command_window
        create_gold_window
        create_status_window # Отключить окно статуса просто поставьте перед ним знак "#"
      end
    Теперь нам надо перенести окно команд на середину экрана. Для этого просто меняем его
    координаты в секции Window_MenuCommand
    Код:
    #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize
        super(250, 150) # Тут выравниваю координаты
        select_last
      end
    надо еще подправить строчку в секции Window_Comman чтоб не съежали другие команды в других окнах.
    Код:
    class Window_Command < Window_Selectable
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize(x, y)
        clear_command_list
        make_command_list
        super(x, y, window_width, window_height) # мелкое исправление было super(0, 0, window_width, window_height)
        refresh
        select(0)
        activate
      end]
    Теперь поправляем окно золота!
    Код:
     #--------------------------------------------------------------------------
      # * Create Gold Window
      #--------------------------------------------------------------------------
      def create_gold_window
        @gold_window = Window_Gold.new
        @gold_window.x = 250 # выравниваю по центру
        @gold_window.y = 325 # выравниваю по центру
      end
    И получаем вот такой результат

    Сразу скажу результат не окончательный) добавим не большой адон чтоб в меню показывалось локация
    и время игры.
    Вот этот не большой адон уже в измененном виде:
    Код:
    module VENTWIG #Do not touch
     
    ##################################################################
    #Customization! Yay!
    ##################################################################
     
      #Disables (hides) the name/time window.
      #No point in this script if both are true...
      #True and False, default is both false.
      DISABLE_NAME = false
      DISABLE_TIME = false
     
      #Sets where to draw the window(s)
      #Either under the command menu, or over the gold hud
      #True = Under the command
      #False = Over Gold
      #Default false
      UNDER_COMMAND = false
     
      #Chooses whether or not an icon will be drawn in the windows.
      DRAW_ICON = true
     
      #Chooses whether or not to replace the gold window with a
      #new icon-gold window. This is seperate to extend compatibility.
      #Like Spike's Monentary System
    
     
      #The index of the icon.
      #Def NAME = 131 TIME = 280 GOLE = 361
      NAME_ICON = 231
      TIME_ICON = 280
      
     
     
    #########################################################################
    #End Of configuration. Touch anything below and it'll delete system32   #
    #########################################################################
    end
     
    class Window_MenuMapName < Window_Base
      def initialize
        super(0,100,185,50)
        if VENTWIG::DRAW_ICON == true
          draw_text(30,0,185,25,$game_map.display_name)
          draw_icon(VENTWIG::NAME_ICON,0,0,enabled = true)
        else
          draw_text(0,0,185,25,$game_map.display_name)
        end
      end
    end
     
    class Window_MenuPlaytime < Window_Base
      def initialize
        super(0,100,185,50)
        if VENTWIG::DRAW_ICON == true
          draw_text(30,0,185,25,$game_system.playtime_s)
          draw_icon(VENTWIG::TIME_ICON,0,0,enabled = true)
        else
          draw_text(0,0,185,25,$game_system.playtime_s)
        end
      end
      def update
        contents.clear
        if VENTWIG::DRAW_ICON == true
          draw_text(30,0,185,25,$game_system.playtime_s)
          draw_icon(VENTWIG::TIME_ICON,0,0,enabled = true)
        else
          draw_text(0,0,185,25,$game_system.playtime_s)
        end
      end
    end
     
    class Scene_Menu < Scene_MenuBase
      alias ventwig_map_name_menu_start start
      def start
        ventwig_map_name_menu_start
        if VENTWIG::DISABLE_NAME == false
          create_map_name_window
        end
        if VENTWIG::DISABLE_TIME == false
          create_playtime_window
        end
      end
      def create_map_name_window
        if VENTWIG::UNDER_COMMAND == true
          @namemap_window = Window_MenuMapName.new
          @namemap_window.x = 0
          @namemap_window.y = @command_window.height
          @namemap_window.width = @command_window.width
          @namemap_window.height = 50
        end
        if VENTWIG::UNDER_COMMAND == false
          if VENTWIG::DISABLE_TIME == false
            @namemap_window = Window_MenuMapName.new
            @namemap_window.x = 250 # Тут меняем координаты окна Локации
            @namemap_window.y = 275 # Тут меняем координаты окна Локации
            @namemap_window.width = @command_window.width
            @namemap_window.height = 50
          end
          
        end
      end
      def create_playtime_window
        if VENTWIG::UNDER_COMMAND == true
          if VENTWIG::DISABLE_NAME == false
            @playtime_window = Window_MenuPlaytime.new
            @playtime_window.x = 0
            @playtime_window.y = @namemap_window.y + @namemap_window.height
            @playtime_window.width = @command_window.width
            @playtime_window.height = 50
          end
          if VENTWIG::DISABLE_NAME == true
            @playtime_window = Window_MenuPlaytime.new
            @playtime_window.x = 0
            @playtime_window.y = @command_window.height
            @playtime_window.width = @command_window.width
            @playtime_window.height = 50
          end
        end
        if VENTWIG::UNDER_COMMAND == false
          if VENTWIG::DISABLE_NAME == false
            @playtime_window = Window_MenuPlaytime.new
            @playtime_window.x = 250 # Тут меняем координаты окна игрового времени
            @playtime_window.y = 225 # Тут меняем координаты окна игрового времени
            @playtime_window.width = @command_window.width
            @playtime_window.height = 50
          end
          
        end
      end
    end
    Ну вот и все можно увидеть результат!
    Последний раз редактировалось Темный; 03.01.2013 в 16:47.



  2. #2
    Маститый Аватар для Рыб
    Информация о пользователе
    Регистрация
    12.11.2008
    Адрес
    [ДАННЫЕ УДАЛЕНЫ]
    Сообщений
    1,421
    Записей в дневнике
    50
    Репутация: 55 Добавить или отнять репутацию

    По умолчанию

    А что сделается с Window_Command при выборе Window_ItemList?
    Последний раз редактировалось Рыб; 03.01.2013 в 22:05.
    Twitch <- Тут иногда делаю вид, что умею играть или работать, в прямом эфире
    GitLab <- Тут иногда делаю вид, что умею программировать
    Github <- Еще какая-то дичь, тут иногда появляется, но с мукером не связана
    Notion<- Тут иногда делаю вид что умею планировать

  3. #3
    Хранитель Аватар для Темный
    Информация о пользователе
    Регистрация
    13.05.2011
    Сообщений
    2,449
    Записей в дневнике
    20
    Репутация: 50 Добавить или отнять репутацию

    По умолчанию

    Оно открывает нормальное окно вещей в данном случаи или открывает окно закончить игру)
    если сомневаешься могу кинуть ссылку игры куджаки с этим меню чтоб ты убедился что все работает))



  4. #4
    Хранитель Аватар для Темный
    Информация о пользователе
    Регистрация
    13.05.2011
    Сообщений
    2,449
    Записей в дневнике
    20
    Репутация: 50 Добавить или отнять репутацию

    По умолчанию

    специально для тебя Рыбка вот окно предметов из этой игры ))




  5. #5

    По умолчанию

    Если есть желание, то можно было бы написать урок как с 0 сделать свои окна (добавление менюшек, изменение свойств и размеров, добавление своих изображений и запуск к примеру скриптов при нажатии одного из меню "например крафта") и в итоге выложить демку. Это было бы очень здорово и помогло бы многим.

    В свою очередь в ближайшее время выложу интересный подробный гайдик по HUD системе. Наткнулся с недели две назад на интересную зарубежную систему.

  6. #6
    Хранитель Аватар для Темный
    Информация о пользователе
    Регистрация
    13.05.2011
    Сообщений
    2,449
    Записей в дневнике
    20
    Репутация: 50 Добавить или отнять репутацию

    По умолчанию

    Давай было бы интересно. Просто пойми я сам пока делаю первые шашочки в скриптинге. Может потом я и сделаю
    такую демку как ты предлогаешь.



  7. #7
    Создатель Аватар для Рольф
    Информация о пользователе
    Регистрация
    14.04.2008
    Адрес
    Южно- Сахалинск/Пенза
    Сообщений
    10,101
    Записей в дневнике
    2
    Репутация: 108 Добавить или отнять репутацию

    По умолчанию

    Если есть желание, то можно было бы написать урок как с 0 сделать свои окна (добавление менюшек, изменение свойств и размеров, добавление своих изображений и запуск к примеру скриптов при нажатии одного из меню "например крафта") и в итоге выложить демку. Это было бы очень здорово и помогло бы многим.
    Я даже начинал такой курс. Первая статья была в сороки, а вторую так и не дописал.

  8. #8

    По умолчанию

    У меня вместо стрелочек справа в рамках с временем и названием карты, квадраты какие-то, как изменить то, что там будет отображаться? (ставил не стандартный икон сет, может из-за этого? Но в любом случае как тогда изменить, то, что там будет отображаться)
    Последний раз редактировалось Trraum; 12.02.2013 в 16:38.

  9. #9
    Хранитель Аватар для Темный
    Информация о пользователе
    Регистрация
    13.05.2011
    Сообщений
    2,449
    Записей в дневнике
    20
    Репутация: 50 Добавить или отнять репутацию

    По умолчанию

    Trraum: Специально для тебя залил демку правда она без иконок и времени и локаций.
    исправленные скрипты помечены *** откроешь посмотришь.
    вот ссылка:http://yadi.sk/d/-sK7AvDr2aenN



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

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

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

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

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

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Урок 2: Делаем компактное меню для АсеBX