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

Помощь по Ren'Py (Вопрос\Ответ)

Admin

#1
Сюда пользователи сайта могут писать вопросы о тех или иных функциях движка Ren'Py, а мы попытаемся на них ответить:)

Marnvini

#1381
Подскажите, как добавить вертикальную полоску прокрутки в окно frame, чтобы можно было прокручивать длинный список/текст

Пример кода:


Код
screen eventlog:
        
    frame: 
        xsize 1920 
        ysize 1080 
        padding (10,10) 
        xpos 1 
        ypos 1               

        vbox:
            xsize 1800
            
            hbox:    
                xsize 1800 
                text "Журнал событий" xalign 0.5
            
            null height 30
            
            hbox:      
                xsize 1800     
                text "Юля:"
                if ularut == 0:
                    text "Длинный текст Длинный текст Длинный текст Длинный текст Длинный текст Длинный текст Длинный текст Длинный текст" xalign 0.5
                elif ularut == 1:
                    text "бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла" xalign 0.5

            null height 30
            
            hbox:      
                xsize 1800 
                text "Елена Ал1:"
                text "Длинный текст Длинный текст Длинный текст Длинный текст Длинный текст Длинный текст Длинный текст Длинный текст" xalign 0.5

            null height 30
            
            hbox:      
                xsize 1800 
                text "Елена Ал2:"
                text "Длинный текст Длинный текст Длинный текст Длинный текст Длинный текст Длинный текст Длинный текст Длинный текст" xalign 0.5
                
            null height 30

    ДАЛЕЕ МНОГО ТАКИХ ЖЕ БОКСОВ (hbox)
Так выглядит в игре
Прикрепления: 2138930.png (1.87 Mb)
Резюме разработчика на Renpy

Marnvini

#1382
Всё разобрался :)

Если кому потребуется, нужно добавить следующий код, внутри которого уже располагать контейнеры hbox
       
Код
vpgrid:

            cols 2
            spacing 5
            draggable True
            mousewheel True

            scrollbars "vertical"
            side_xalign 0.9
Резюме разработчика на Renpy

Orinoku

#1383
Вечер добрый. Подскажите, как можно скрыть кнопку в меню и показывать ее только после открытия хотя бы одной концовки (концовок всего 5)?
Предполагаю, что нужно присвоить переменные концовкам и где-то у кнопки прописать условие для отображения, но не совсем понимаю где его прописывать. И какое именно условие.
Заранее благодарю за обратную связь)

dmit

#1384
Orinoku
Код
init python:    # инициализация постоянных данных при первом запуске
    if persistent.ends is None:
        persistent.ends = False

# Игра начинается здесь.
label start:
    "Текст новеллы. Бла-бла-бала."
    # конструкцию ниже можно использовать в ллюбом месте скрипта
    # if persistent.ends:
    #     jump end4
    # даже прямо в меню выбора
    # последний пункт появится, когда будет пройдена хотябы 1 концовка
    menu:
        "Пройдите одну из концовок и снова запускайте игру."
        "К концовке 1":
            jump end1
        "К концовке 2":
            jump end2
        "К концовке 3":
            jump end3
        # следующий пункт меню появится только
        # если persistent.ends = True - пройдена одна из концовок
        "К концовке 4" if persistent.ends:
            jump end4
    return
# сюда переходим при выборе одного из пунктов
label end1:
    "Концовка 1."
    # запоминаем, что мы ее прошли
    $ persistent.ends = True
    return
label end2:
    "Концовка 2."
    $ persistent.ends = True
    return
label end3:
    "Концовка 3."
    $ persistent.ends = True
    return
label end4:
    "Концовка 4!"
    return
планета FOREVER!!!      Unkenbro team

Orinoku

#1385
dmit, я не совсем корректно выразилась в своем вопросе^^"
Я хочу спрятать кнопку в main_menu (то есть там где типа начать игру и все вот это), и показать ее после того, как игрок пройдет хотя бы до одну концовку. Может знаете как такое реализовать?)
Надеюсь теперь яснее
И все равно спасибо вам за оперативный ответ!)

ChocoLoco

#1387
Цитата KrAleGen ()
Злравствуйте! Я запустил РенПай 8.0.1. Выбираю "Добавить новый проект" - Выбираю язык - Ввожу имя проекта - "Продолжить" - Выходит сообщение "Нажмите Shift+R для продолжения" - нажимаю Выходит сообщение "Запуск проекта провален. Пожалуйста, убедитесь, что ваш проект нормально запускается перед использованием этой команды." Не понятно... Я же его только что запустил. Что нужно сделать?
KrAleGen, у меня такая же проблема была. Как я понял, нужно папку renpy перетащить в то место, где путь файла не содержит кириллицу. С предыдущими версиями вроде такой проблемы нет.
Сообщение отредактировал ChocoLoco - Четверг, 04/Авг/2022, 09:14

LucyLuc

#1388
Здравствуйте! 
У меня такой вопрос:
Вот я могу запустить свой проект, игра нормально работает. Но когда заходишь в папки, то там нет самой игры? Типа, я не могу включить игру без лаунчера ренпай. Что мне делать?  nmda
lucyluc666

dmit

#1391
LucyLuc, теоретически можно, но лучше конечно закончить и сделать дистрибутив. Если ВН выпускается по частям, то для этого нужно предусмотреть код. Если Игра обновляется , можно выпустить к ней патч, но это не совсем то "менять скрипт в игре".
планета FOREVER!!!      Unkenbro team

Dasha_K

#1393
Всем привет!

У меня проблема с галереей. Хочется, чтобы в галерее открывались не картинки, а лейблы с большими сценами. Для этого я написала:

1. Код для экрана (там пока 1 элемент):

Код
screen gallery():

    tag menu
    add "gui/game_menu.png"
    
    grid 3 2:
        xfill True
        yfill True
        
        add g.make_button("gallery_a_open", "gallery_a", xalign=0.5, yalign=0.7, hover_border="images/gallery/gallery_border.png"
        null
        null
        null
        null
        null

    textbutton "{size=45}CLOSE{/size}" action Return() xalign 0.5 yalign 0.95
 2. Код для первого элемента в галерее:

Код
init python:
    
    g = Gallery()
    
    g.locked_button = "images/gallery/gallery_closed.png"
    
    g.button("gallery_a_open")
    g.condition("persistent.gallery1")
    g.image("gallery_a")

И все было бы хорошо, если бы "gallery_a_open" было бы картинкой... Но это label с большой сценой (там и диалоги, и картинки), и я не могу понять, как его вызывать и как прописать.

В общем, хочу сделать галерею не из картинок, а из сцен.

Может быть, кто-то поможет?
Сообщение отредактировал Dasha_K - Вторник, 16/Авг/2022, 16:51

Marnvini

#1394
Dasha_K

Делаешь экран с картинками-превьюшками, которые перебрасывают в нужный лейбл, или вызывают его


Код
screen gallery:

    if peremennaya1 == True: # Если условие выполнено, картинка-превьюшка доступна для клика и просмотра
       
        imagebutton:
        
            xpos 300 # Координаты картинки на экране в пикселях
            ypos 100 # аналогично
            idle "images/map/kartinka1.png" # Картинка, отображаемая в галерее
            hover "images/map/kartinka2.png" # Картинка, отображаемая при наведении курсора, например подсвечивается предыдущая
            action Jump ("bolshaya_scena") # При клике переходим в лейбл с большой сценой и диалогами
                    # Вместо Jump можно использовать Call для вызова лейба
            
    else:
        # Иначе отображается картинка-заглушка
        # Здесь такой же код для картинки-заглушки, без action
        
    if peremennaya2 == True: # Следующая кнопка-картинка в галереи, делается также
    # и далее сколько угодно
Резюме разработчика на Renpy

Dasha_K

#1395
Цитата Marnvini ()
Делаешь экран с картинками-превьюшками, которые перебрасывают в нужный лейбл, или вызывают его
Большое спасибо, все получилось!

Единственное, что непонятно - это как перебрасывать пользователя из Label в галерее обратно в эту самую галерею, когда он посмотрел сцену. Я пробовала писать так:


Код
label scene_a_open:

    #Какие-то картинки и тексты.
    action ShowMenu ("gallery")
    return

Но это, конечно, неправильная команда... А правильную не удается подобрать.
Поиск: