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

Форум о визуальных новеллах » Для разработчиков » Ren'Py » Помощь по Ren'Py (Вопрос\Ответ)
Помощь по Ren'Py (Вопрос\Ответ)

Admin

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

Egorrus00

#512
Ребят, кто нибудь из вас знает как соединить таймер и пароль? Это что вроде: введите пароль а таймер 10 секунд и если не набрать то конец. Можете помочь? smile_76

dmit

#513
пункт меню:
"[persistent.data[0]]Какой-то текст...":
где persistent.data[0] какая-то буква

В screen nvl не могу получить эту букву из i.caption
i.caption[0] = "["

как получить сам текст? букву? (текст на самой кнопке отображается правитьно с буквой)
планета FOREVER!!!      Unkenbro team

dmit

#514
Egorrus00,
Код
    show screen timer_test
    $ parol = renpy.input("Пароль-?", default="",length=4)
    hide screen timer_test
label ty2:
    "Пароль - [parol]"

screen timer_test():
    timer 10.0 action [Hide("timer_test"), SetVariable("parol", "xxxx"), Jump("ty2")]


Или с устаревшими функциями UI
Код
    python:
        name =""
        ui.text("Введите своё имя:", xalign=0.5, yalign=0.4)
        ui.timer(10, ui.jumps("ty"))
        ui.input(name, xalign=0.5, yalign=0.5)
        name = ui.interact()
label ty:
    if name=="":
        "Долго думаете"
        $ name = 'Тупой'
            
    "Ваше имя - [name]"
планета FOREVER!!!      Unkenbro team

Ikuku

#515
dmit, Задача именно в том, чтобы получить в экране меню через caption отдельно то, что лежит в persistent'e и отдельно "Какой-то текст"? Если да, то есть вариант отбивать все, что в persistent, каким-нибудь специальным символом, который точно не будет нигде больше фигурировать, а потом внутри экрана разбивать строку на список, и вынимать нужный кусок списка. Что-то вроде:
Код
menu:
    "[persistent.data[0]]=Какой-то текст":
  pass

    "Другой пункт меню, в котором только текст без переменных":
  pass

(т.е. "=" будет отделять текст кнопки от искомой буквы). И дальше в самом экране:
Код
vbox:
    for i in items:
     python:
      # разбиваем строчку на массив, разделитель - "="
      parts = i.caption.split("=")

      # если "=" в строке не было, то сплит() вернет одноэлементный массив, такие нас не интересуют
      if len(parts) > 1:
       some_text = parts[0] # искомый текст из persistent-переменной, выведенный в пункт меню
      else:
       some_text = ""

        textbutton i.caption action i.action # кнопка меню как есть
        textbutton parts[-1] action i.action # текст без persistent-куска, первый элемент списка parts, начиная с конца. Работает для всех пунктов меню: и тех, в которых была переменная, и тех, в которых не было.
        if some_text:
         textbutton some_text action i.action # только persistent-кусок, если есть

Единственный минус: отбивочный символ надо подбирать так, чтобы он в строке не встречался в нормальных условиях, только когда его специально туда поставят.

dmit

#516
Ikuku, можно и так. можно и передавать просто "НОМЕРТекст" и получать persistent.data[НОМЕР],
Но я ни как не пойму, почему на кнопке (textbutton i.caption) -> "*Текст" , а я не могу получить эту звёздочку вместо [persistent.data[0]] Как вытянуть то что получает кнопка?

Собственно глобальная задача была показать то, что пункт меню (эта ветка) была когда-то пройдена :)
Код
"[persistent.data[0]]Какой-то текст...":
    persistent.data[0]= " "
По пробелу должен меняться вид кнопки (появляться знак на ней)
Сообщение отредактировал dmit - Суббота, 24/Ноя/2018, 15:39
планета FOREVER!!!      Unkenbro team

Ikuku

#517
dmit, Внезапно, оказалось, что я и не в курсе, что в i.caption передается неформатированная строка, вместе с тегами и квадратными скобками, my bad) Но теперь вроде понятно. Вы пытались вытащить по срезу нулевой символ, а поскольку в i.caption лежит весь технический мусор, нулевым символом оказывалась квадратная скобка. Есть решение! Брать нулевой символ не от i.caption, а от renpy.substitute(i.caption). Собственно, renpy.substitute() проводит все форматирование, которое происходит "под капотом" при выводе экрана, и возвращает уже отформатированную строку текста, в том виде, в котором она видна на кнопке. Ну, то есть, код будет выглядеть примерно:
Код
text renpy.substitute(i.caption)[0]

Вроде бы так)

dmit

#518
Собрал пакет для андроида. Всё прошло правильно. Через некоторое время потребовалось изменить настройки, а именно имя, версия, иконка. Пробую собирать пакет, получаю стандартную иконку и старые настройки (имя и версия). Более того и при сборке другой новеллы идут эти же настройки (имя, версия, иконка, подпись в меню андроида). Между сборками происходило обновление Ренпи. Где можно сброить настройки? переустановка ни чего не дала.
планета FOREVER!!!      Unkenbro team

Daska

#519
Как создать непрерывные частицы вокруг "летающего" спрайта?
У меня есть спрайт приведения, и, я хочу что бы когда он появлялся вокруг него были частицы, или чтоб от него исходили эти частицы, но как это сделать- я не знаю.
Кто-нибудь подскажет?
DаСka... Тута...

Akiyamy

#520
Daska, можно создать анимацию с частицами отдельно, присвоив её переменной, а затем вызывать в том месте, где должен быть призрак. (Присвоить как изображение) Чтобы всё было плавно - добавить with dissolve.
Допустим сначала появляются частицы, затем спрайт призрака, а после убрать частицы. Будет ощущение, словно призрак появился с частицами.
Но если делать поверх спрайта всё время, наверное, тебе лучше подскажет кто-то другой. Потому что появление спрайта из свечения я делала, а вот второй способ не пробовала. Как вариант: вызывать переменную с частицами поверх слоя со спрайтом как-то одновременно, чтобы при замене спрайта (эмоции какие-нибудь или другая поза) частицы не падали куда-то за спину.
Хотя, если и не надо, чтобы частицы были поверх спрайта, то можно их опять же - вызвать и просто не убирать до нужного момента, т.к. при вызове спрайта частицы останутся позади него.

(PS может, есть способ и лучше, но я просто о нём не знаю)

СОНЦЕ

#521
Daska,
https://ufile.io/iw0ld

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

Вообще подобные вещи очень приятно делать в ATL
я вообще смотрю недавно туда крутых плюшек завезли. надо поизучать :3

CHMOnika

#522
Доброго дня, не знала куда написать, поэтому напишу сюда.

Не знаю, почему, но у меня при запуске проэктов вылетает это

I'm sorry, but an uncaught exception occurred.

After initialization, but before game start.
Exception: DirectSoundCreate: No audio device found

-- Full Traceback ------------------------------------------------------------

Full traceback:
File "D:\renpy-7.1.3-sdk\renpy\bootstrap.py", line 313, in bootstrap
renpy.main.main()
File "D:\renpy-7.1.3-sdk\renpy\main.py", line 500, in main
renpy.display.core.Interface()
File "D:\renpy-7.1.3-sdk\renpy\display\core.py", line 1648, in __init__
renpy.audio.audio.init()
File "D:\renpy-7.1.3-sdk\renpy\audio\audio.py", line 818, in init
renpysound.init(renpy.config.sound_sample_rate, 2, bufsize, False)
File "renpysound.pyx", line 200, in renpy.audio.renpysound.init
File "renpysound.pyx", line 63, in renpy.audio.renpysound.check_error
Exception: DirectSoundCreate: No audio device found

Windows-7-6.1.7601-SP1
Ren'Py 7.1.3.1092
ALPHA
Mon Dec 24 10:59:50 2018

Можно ли это исправить как-то или конец ренпаю?
Вареник

dmit

#523
CHMOnika, ответ на ваш вопрос - https://lemmasoft.renai.us/forums....p382249
вкратце - проблема в вашем звуке - есть ли звуковая карта? - если есть то проблема с драйвером.
это и надо исправлять. но можно просто отказаться от звука:
Код
init python:
    config.debug_sound = False
планета FOREVER!!!      Unkenbro team

CHMOnika

#524
Глупые вопросы, но ладно.

1.Можно ли в новеллу ввести что-то типа галереи?

2.Как сделать ярлык на новеллу, что-бы можно было запустить её через этот самый ярлык, а не через ренпи?
Форум о визуальных новеллах » Для разработчиков » Ren'Py » Помощь по Ren'Py (Вопрос\Ответ)
Поиск: