Посмотрел я игру 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
Ну вот и все можно увидеть результат!
Социальные закладки