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

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

Admin

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

Katruna

#1171
Ельница, не поняла, а в чем собственно проблема?
Делаете 3 папки, для каждого из петов.
А в коде прописываете, картинку через нужную папку:
"/image/pet_1/happy.png"
"/image/pet_2/sad.png"
"/image/pet_3/bored.png"

или в чем-то другом проблема?
Художник в душе и в жизни
Дракон в душе и в жизни
Butterfly effect

Ельница

#1172
Katruna, вопрос в том, как сделать так, чтобы не пришлось каждый раз прописывать весь путь.
Условно в какой-то момент игры ГГ выбрал питомца 1 и это зафиксировалось в коде - в дальнейшем, если надо вызвать его спрайт, то достаточно написать happy, и ренпай будет выбирать этот спрайт только из папки питомец 1.
Благими намерениями вымощена дорога в ад

Katruna

#1173
Ельница, Один раз придется прописать весь путь , а потом просто вызывать по названию картинки.

На примере, как это будет. Создаем для движка эмоцию третьего пета:
   
Код
image pet_3 sad = "image/pet_3/sad.png"

А дальше, вместо прописывания пути всей картинки, просто в нужный момент вызываешь нужную картинку по уже данному тобой названию, как пример: pet_3 sad.

А на счет фиксирования тут просто сделать проверку переменной с помощью If
Код
if persistent.pet_1 == True:    ### проверка, равно ли переменная пету первому
        show pet_1 sad                   ### если равна, то он покажет картинку первого пета
    elif persistent.pet_1 != True:    ### а если не равна
         show pet_2 sad                   ### покажет второго
Сообщение отредактировал Katruna - Воскресенье, 20/Июн/2021, 08:53
Художник в душе и в жизни
Дракон в душе и в жизни
Butterfly effect

Kio_Kiyoshi

#1175
Подскажите как опредилить активный label, чтоб после вызова функции его можно было перезапустить с новыми параметрами, тем самым получив новые варианты "развития сюжета"... скажем так

На практике есть не очень большой label, построен на кастомном меню выборов. При отображении меню проходит проверка переменных от которой зависит то что доступно игроку..

Также есть меню с кнопками, которые могут переключать переменные не зависимо от того были ли исполнены требования, но в конце каждого label есть функция которая делает это меню недоступным.. Скажем это меню работает только в промежутке опредиленных label..

Так от после нажатия такой кнопки нужно перезапустить label (в котором находится игрок) с новыми параметрами.

Как такое можно реализовать?

Заранее спасибо за потраченное время :)

Kio_Kiyoshi

#1177
Спасибо:) примерно понял, но на нужной ветке форума отработаю этот вопрос.

В догонку еще один вопрос.. О времени.

Нужно отобразить таймер с ограничением по времени и который будет активен не только в текущем лейбле и естественно чтоб он на паузу не ставал в режиме ожидания..

Уменя получается что при вызове новой метки все ламается.. Или пепезапускается таймер или ничено не работает вообще.

Если знаете хорошие примеры - буду рад помощи

Kio_Kiyoshi

#1179
Да.
Таймер в отдельном потоке.
Запускается вместе з началом игры. После окончания времени выкидывает на label start. Работает даже если игрок ничего не делает...и естественно при смене меток..

Добавлено (03.07.2021, 15:56)
---------------------------------------------
Спасибо... Я попробую реализовать по примеру который Вы показали.

Добавлено (03.07.2021, 16:11)
---------------------------------------------
Пример не тот ( Это хороший пример для меню с ограничением по времени..У меня такое работает только з прогресбаром, это удобно для использования внутри метки...

Мой сценарий:
Стартовая метка (Таймер запущен) - Метка 1 (таймер запущеный в стартовой метке все еще работает) - .... - Метка 12 (Таймер работает) - Метка # (Время закончилось перенестись к старовой метке и перезапустить таймер) ....

При вызове Метки 2 не могу перенести время в эту метку

Добавлено (03.07.2021, 16:21)
---------------------------------------------
Возможно я не правильно выразился...извените..

То что мне нужно хорошо обьяснить на системе смены времени суток, и самое важное это должно проверяться постоянно..(без паузы в чтенни текста) даже если я пойду гулять и забуду выключить игру.

Наример каждые 48 минут меняется игровой день. Не важно в какой метке я нахожусь..Каждую четвертую часть этого времени будет выводится оверлей отвечающий за время суток...день-ночь-утро и тд...

Я не могу вывести эти данные потому что не могу проверять их динамически...

По факту мне нужен таймер который работает отдельно от самой игры (без пауз)..и при смене меток время продолжает идти..

 

Добавлено (03.07.2021, 16:36)
---------------------------------------------
Вот пример. Но после прыжка на новую метку все ламается

Добавлено (03.07.2021, 16:37)
---------------------------------------------
# This file demonstrates how to use DynamicDisplayable to make parts of the
# display that update without there being an interaction.

init:
    python:

        # This function will run a countdown of the given length. It will
        # be white until 5 seconds are left, and then red until 0 seconds are
        # left, and then will blink 0.0 when time is up.
        def countdown(st, at, length=0.0):

            remaining = length - st

            if remaining > 5.0:
                return Text("%.1f" % remaining, color="#fff", size=72), .1
            elif remaining > 0.0:
                return Text("%.1f" % remaining, color="#f00", size=72), .1
            else:
                # It's very important to hide the displayable, otherwise Ren'Py will keep showing it, keep trying to jump over and over again and get stuck.
                renpy.hide("countdown")
                renpy.jump("demo_dynamic_catch")
                return

    # Show a countdown for 10 seconds.
    image countdown = DynamicDisplayable(countdown, length=10.0)

label start:
    jump  demo_dynamic

label demo_dynamic:

    "The DynamicDisplayable function lets you change what's displayed over the course of an interaction."

    show countdown at Position(xalign=.1, yalign=.1)

    "This makes it possible to display things like countdown timers and progress bars."

    "Remember, people read at different speeds, so it's probably better to use this for flavor, rather then to make games time-sensitive."

    hide countdown
    with dissolve
    jump a

    return

label a:
    "А"

    jump b

label b:

    "B"

label demo_dynamic_catch:

    "And now the timer's run out."

    "The world is doomed!"

    "It's all your fault."

    return

Добавлено (04.07.2021, 10:54)
---------------------------------------------
Проблема решилась

Спасибо.

telurrsellinght

#1180
Здравствуйте! Прошу помощи с главным меню. Получается, что сделали текст по середине, но когда, например, нажимаешь в главном меню на кнопку "загрузка", то кнопки меню все посередине. Как сделать, чтобы при нажатии на кнопки из главного меню показывали меню как во внутреннем?
Прикрепления: 2993187.jpg (25.6 Kb) · 4489756.jpg (25.9 Kb)
экстримальный ссыкунобссыкун

Kio_Kiyoshi

#1181
Либо создать альтернативное меню для вкладки save lоad (можно ковырять screen navigation) либо создать альтернативную вкладку save/load но это подрозумевает то что остальные разделы меню тоже нужно переделать.

Смотри здесь:

https://lemmasoft.renai.us/forums/viewtopic.php?t=49081

pirsus

#1184
Здрасьте.
Можно тупой вопрос?

Мне надо прописать анимацию, которая не повторяется, и застывает на последнем кадре после проигрывания.

Если я прописываю вот так в блоко Init, то при выполеннии команды show harley2 вызывается только последний кадр.
Код
image harley2:
        "images/harley/c1.png"
        pause 0.5
        "images/harley/c2.png"
        pause 0.1
        "images/harley/c3.png"
        pause 0.1
        "images/harley/c4.png"
        pause 0.1
        "images/harley/c5.png"
Как написать, чтобы анимация проигрывалась правильно? Последовательно, с разными паузами и оставался последний кад?

lf2mr

#1185
Здравствуйте.
Можно ли как-нибудь на ходу менять шрифт прописанный в gui.rpy при смене локализации в проекте?
Я сделал, чтобы при смене локализации менялся параметр gui.text_font на нужный мне, он и меняется - в консоли на это выдаёт шрифт, который я и указал на смену локализации, но в проекте это не отражается.
Возможно как-то на начальных этапах загрузки проекта можно прописать условие для смены шрифтов при смене локализации, чтобы он загружался в память или ещё как? Заранее благодарен за любую помощь в таком вопросе.
Поиск: