Форум Anivisual закрыт. Вы не можете создавать новые темы или писать ответы. Форум будет работать в режиме архива.
Пользователи · Поиск по форуму · · · Регистрация

  • Страница 1 из 1
  • 1
Форум о визуальных новеллах » Для разработчиков » Ren'Py » Модульная новелла
Модульная новелла

Rentor

#1
Здравствуйте.

Начал осваивать ренпай для создания "модульной новеллы", возник ряд вопросов.

Цель - создать ряд модулей, с которыми работает игрок: отображение "задачи", кнопки выборы решения, далее отображение текста выбора под задачей и кнопка для перехода к новой задаче. В итоге должно получиться что-то по типу 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]"


Примерно так же сделал кнопки (пока текстовые)
   
Код
#кнопка Вариант 1
    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 появлялся ниже с нужным текстом ответа.
Схема выше работает, но это реал костыль, прошу помощи опытных коллег, как сделать модуль не извращая ренпай?

dmit

#2
Делал что-то подобное, но на основе menu: 1 блок - say c side, 2 блок тоже say или show text
3 блок изменённые кнопки меню. Nvl тут не нужен.
Отменить мышь см. keymap.
multiple - нужно задать два разных стиля для двух блоков (см. есть описание в документации)
планета FOREVER!!!      Unkenbro team
Форум о визуальных новеллах » Для разработчиков » Ren'Py » Модульная новелла
  • Страница 1 из 1
  • 1
Поиск: