Итак, как и обещал - вот гайд. Просьба к модераторам закрепить топик, чтобы не потерялся.
Важный момент. Я подчеркиваю, что речь идет не об увеличении максимального разрешения вообще, для этого есть свои способы (взломанная ДЛЛ, скрипты), а о том, как создать в самой игре опцию по изменению разрешения.
Требования: разрешение в вашей игре должно прописываться командой Graphics.resize_screen(х,у).
Это может быть как ДЛЛка, так и скрипт, или даже у вас может не быть ни того ни другого - тогда вы сможете менять разрешение до 640*480 включительно. Способ работать будет все равно.
Итак, приступаем.
1. Открываем Скрипт Эдитор.
2. Заходим в скрипт Window_TitleCommand
3. Ищем участок кода
def make_command_list
add_command(Vocab::new_game, :new_game)
add_command(Vocab::continue, :continue, continue_enabled)
add_command(Vocab::shutdown, :shutdown)
end
это наше стартовое меню. Меняем его на
def make_command_list
add_command(Vocab::new_game, :new_game)
add_command(Vocab::continue, :continue, continue_enabled)
add_command("800*600", :Res800x600)
add_command("1024*768", :Res1024x768)
add_command("1024*600", :Res1024x600)
add_command(Vocab::shutdown, :shutdown)
end
После этого у нас в меню появятся пункты с новыми разрешениями (цифры подставляете свои)
4. Далее ищем скрипт Scene_Title (он немного ниже).
5. В этом скрипте ищем участок кода
def create_command_window
@command_window = Window_TitleCommand.new
@command_window.set_handler(:new_game, method(:command_new_game))
@command_window.set_handler(:continue, method(:command_continue))
@command_window.set_handler(:shutdown, method(:command_shutdown))
end
Он отвечает за действия, которые предпринимает игра при выборе любого пункта стартового меню
Меняем этот код на
def create_command_window
@command_window = Window_TitleCommand.new
@command_window.set_handler(:new_game, method(:command_new_game))
@command_window.set_handler(:continue, method(:command_continue))
@command_window.set_handler(:Res800x600, method(:command_800600))
@command_window.set_handler(:Res1024x768, method(:command_1024768))
@command_window.set_handler(:Res1024x600, method(:command_1024600))
@command_window.set_handler(:shutdown, method(:command_shutdown))
end
Тем самым мы указываем игре при выборе пунктов с разными разрешениями задействовать соответствующие им процедуры. Однако самих процедур еще нет.
6. Ищем участок кода
def command_continue
close_command_window
SceneManager.call(Scene_Load)
end
Теперь НИЖЕ НЕГО вставляем
def command_800600
Graphics.resize_screen(800,600)
close_command_window
create_command_window
end
def command_1024768
Graphics.resize_screen(1024,768)
close_command_window
create_command_window
end
def command_1024600
Graphics.resize_screen(1024,600)
close_command_window
create_command_window
end
Каждая из этих трех процедур меняет разрешение и заново пересоздает стартовое меню.
Все, у нас появились пункты меню с новыми разрешениями.
По поводу окон.
Из-за индивидуальных разрешений другие окна приходится подгонять. на данном этапе разработки я не столкнулся с этой проблемой, когда разрешение увеличивается, окна в разделе персонажа, инвентарь и тд остаются на своих местах в тех же пропорциях. Только размеры становятся больше.
Если столкнусь с проблемами - буду описывать, как я их решал.