Посмотрел я игру 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
надо еще подправить строчку в секции Window_Comman чтоб не съежали другие команды в других окнах.Код:#-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super(250, 150) # Тут выравниваю координаты select_last end
Теперь поправляем окно золота!Код: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
![]()










Ответить с цитированием

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