Начал осваивать ренпай для создания "модульной новеллы", возник ряд вопросов.
Цель - создать ряд модулей, с которыми работает игрок: отображение "задачи", кнопки выборы решения, далее отображение текста выбора под задачей и кнопка для перехода к новой задаче. В итоге должно получиться что-то по типу Reigns или Choice of Life Middle Ages.
На схеме выглядит это примерно так
Согласно схеме алгоритм модуля должен быть такой:
1. Открывается label.
2. В секции 1 отображается картинка и текст "задачи", пропечатывается, как реплика.
3. Когда пропечаталась "задача" появляются кнопки выбора - вариант А и Б. Секция 2 (ответ) в данный момент пустое.
4. После выбора ответа (нажатия одной из кнопок) - кнопки ответа пропадают и в секции 2 печатается нужный "ответ".
5. Когда пропечатался "ответ" появляется кнопка "Далее" (правый нижний угол).
6. По кнопке "далее" - переход на новый label ...
Столкнулся с рядом проблем, возможно кто-то сможет помочь:
1) перемещение между "задачами", т.е. label должно быть привязано исключительно к кнопке "далее", никакой мыши. Искал-искал, как отключить переход между label по мыши - так и не нашел. Может кто подскажет?
2) с содержанием "блоков" (которые черные 1, 2, 3) решил вопрос через создание отдельных screen, размещение по x y, и привязке к ним текста и картинки через переменную.
Вот, например, как выглядит screen "задачи" (черный блок 1)
Код
screen vop:
# окно картинки задачи
vbox:
xsize 200
ysize 200
xpos 280
ypos 130
image ("[res]")
# окно текста задачи
vbox:
xsize 500
ysize 300
xpos 500
ypos 130
#переменная text1 меняется в script через $ text1 = "нужный текст"
text "[text1]"
# окно картинки задачи
vbox:
xsize 200
ysize 200
xpos 280
ypos 130
image ("[res]")
# окно текста задачи
vbox:
xsize 500
ysize 300
xpos 500
ypos 130
#переменная text1 меняется в script через $ text1 = "нужный текст"
text "[text1]"
Примерно так же сделал кнопки (пока текстовые)
Код
#кнопка Вариант 1
screen var1:
vbox xpos 380 ypos 430:
textbutton "вариант 1" action Hide("var2"), Show("otv1"), Show("next_button")
screen var1:
vbox xpos 380 ypos 430:
textbutton "вариант 1" action Hide("var2"), Show("otv1"), Show("next_button")
Это работает. Но я понимаю, что это костыль для ренпая, т.к. наполнение текста "задачи" должно быть привязано к диалогу say или nvl.
И если покопавшись в опциях say я кое-как подогнал окно вывода текста на нужное место, то с nvl там такой ад, что даже не знаю за что хвататься, хотя мне кажется, что это именно через nvl должно реализовываться.
3) еще одна штука в том, что при выводе "ответа" должен оставаться и вопрос. Пробовал добавить второго Character с отдельным screen = "say_2", чтобы воспользоваться (multiple=2) для отображения 2х реплик. Но почему-то say и say_2 отображаются на одном месте - косяк где-то в глубинных настройках.
Короче говоря, задача - запихать say или nvl в screen с vbox с нужным мне положением на экране, и чтобы при выборе варианта подобный screen появлялся ниже с нужным текстом ответа.
Схема выше работает, но это реал костыль, прошу помощи опытных коллег, как сделать модуль не извращая ренпай?