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

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

Admin

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

dmit

#1306
MrLolya, для обводки задайте свойство текста outlines [ (3, "#00f", 0, 0) ]
расстояние между строками можно увеличить, задав свойство line_spacing
планета FOREVER!!!      Unkenbro team

Dasha_K

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

Подскажите, пожалуйста - как выводить пользователю текст вместо числового значения переменной? Например, у меня есть переменная "Успеваемость":

define performance = 0

Если успеваемость меньше 0, я хочу выводить текст "Лодырь", если больше 0 - "Троечник". Если =>3 - "Хорошист".

Сам экран я начала делать, числовые значения вроде выводятся, но как их заменять текстом, вообще непонятно. Весь Гугл облазила...

Код

  hbox:
            vbox:   # Колонка с названими параметров
                spacing 5   # расстояние между строками
                xsize 220   # ширина колонки
                text "Успеваемость:" xpos 20 size 20
                text "Репутация:" xpos 20 size 20
                text "Поведение:" xpos 20 size 20

            vbox:   # Колонка со значениями параметров
                spacing 5
                xsize 50
                text "[performance]" size 20
                text "[reputation]" size 20
                text "[behaviour]" size 20

dmit

#1308
Dasha_K,
Код
text "%s" % If(performance<0, "Лодырь", If(performance<3, "Троечник", "Хорошист"))

попробуйте (я не проверял).
Сообщение отредактировал dmit - Воскресенье, 06/Фев/2022, 15:22
планета FOREVER!!!      Unkenbro team

Dasha_K

#1309
Цитата dmit ()
попробуйте (я не проверял).
Спасибо!

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

Если:
Код
text "%s" % If(performance<=5, "Троечник", If(performance>5 and performance<=10, "Хорошист"))
то даже если переменная равна 10, все равно выдает "Троечник"
Сообщение отредактировал Dasha_K - Воскресенье, 06/Фев/2022, 17:03

Dasha_K

#1311
Цитата dmit ()
Dasha_K,  да так действительно не обновляет. См. в файле 3 метода рабочих :)
Спасибо, работает! Мне больше всего приглянулся метод №3, но другие тоже работают.

НяШнАя_СмЕрТь

#1312
Здравствуйте, я начинающий начинающий разработчик игр, очень мало в этом смыслю.
Есть такой вопрос, допустим, я хочу написать на Renpy не совсем новеллу, а какую-нибудь казуалку для андроидов. Как будет реализовываться оптимизация экранов, кнопок и изображений под разные размеры дисплеев и разные диагонали? Собственно, как выбрать оптимальное разрешение для работы, что потом предпринять для улучшения оптимизации, как вообще это происходит. Извините, ничего в этом не смыслю. Проще говоря, вопрос такой, будет ли игра автоматически растягиваться под экран или будет с чёрными полосами, и если будет растягиваться, то не съедут ли кнопки куда-то вбок?

dmit

#1313
НяШнАя_СмЕрТь, ренпи растягивает игру, но сохраняя пропорции! если у вас соотношение 16х9 задано , то при просмотре на экранах 16х10, 18х8 будут появляться чёрные полосы (снизу-сверху, справа-слева). Для просмотра в вертикальном исполнении, отдельно придётся разработать интерфейс. Для просмотра на мелких экранах, есть методы изменяющие вид интерфейса для удобства взаимодействия (например убирающие мелкие элементы и увеличивающие текст и оставшиеся кнопки).Короче всё не идеально, но ренпи быстро развивается и в дальнейшем...
Если вспомнить достоинства, то один проект можно портировать не только на андроид, но и веб, айос, вин , лин...  И если правильно использовать, то и игра на любых платформах не будет напрягать не совсем чётким следованиям экрана.
планета FOREVER!!!      Unkenbro team

lf2mr

#1314
Здравствуйте. Прошу помощи.
Есть скрин в меню игры с чекбоксами:

Код
imagebutton:
                    if my_val:
                        idle "gui/preferences/custom_menu_box_idle.png"
                        hover "gui/preferences/custom_menu_box_hover.png"
                        action SetVariable("my_val",False)
                    else:
                        idle "gui/preferences/custom_menu_box_empty_idle.png"
                        hover "gui/preferences/custom_menu_box_empty_hover.png"
                        action SetVariable("my_val",True)
Мне надо, чтобы после присвоения значения переменной my_val в обоих случаях происходило обновление - renpy.restart_interaction(), но не пойму как это тут реализовать. Можно ли как-то привязать это обновление в action и оно будет единоразово срабатывать при выборе/отмене чекбокса или как-то иначе это надо реализовывать в таком случае?

Curvas

#1315
Сердечно приветствую!
Такой вот немного странный вопрос: 
Хотел сделать изменение цвета персонажа в зависимости от выборов. К примеру, если я подарю девушке цветок, то она станет более теплого цвета, а если носки, то наоборот, более холодного. Пытался сделать значение цвета переменной, но ничего не вышло(
Я понимаю, что можно просто прописывать цвет персонажу в каждой его фразе, но сами понимаете как много лишних символов получиться...
Может есть какой-то способ изменить "цвет имени персонажа" простым способом?

dmit

#1316
заменить какой-либо параметр персонажу легко - $ e = Character(kind=e, what_color = "#f00")
если сначала объявить разные персонажи (по цвету или ещё как), то можно просто их подменять  $ e = eice       $ e = efire
и далее будет другой параметр.
планета FOREVER!!!      Unkenbro team

Curvas

#1317
Цитата dmit ()
заменить какой-либо параметр персонажу легко - $ e = Character(kind=e, what_color = "#f00")если сначала объявить разные персонажи (по цвету или ещё как), то можно просто их подменять  $ e = eice       $ e = efire
и далее будет другой параметр.
    
Спасибо это почти сработало)))
'What_color=' - отвечает за цвет текста, поэтому обычный "Color=" справляется лучше)
Теперь смогу реализовать свою задумку

N1cHoNo

#1318
Приветствую
Уже который час борюсь вот с такой проблемой

I'm sorry, but an uncaught exception occurred.

While running game code:
File "renpy/common/00keymap.rpy", line 469, in script
python hide:
File "renpy/common/00keymap.rpy", line 469, in <module>
python hide:
File "renpy/common/00keymap.rpy", line 488, in _execute_python_hide
renpy.save("_reload-1", "reload save game")
AttributeError: 'NoneType' object has no attribute 'stores'

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

Full traceback:
File "renpy/common/00keymap.rpy", line 469, in script
python hide:
File "renpy/ast.py", line 928, in execute
renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
File "renpy/python.py", line 2245, in py_exec_bytecode
exec(bytecode, globals, locals)
File "renpy/common/00keymap.rpy", line 469, in <module>
python hide:
File "renpy/common/00keymap.rpy", line 488, in _execute_python_hide
renpy.save("_reload-1", "reload save game")
File "renpy/loadsave.py", line 394, in save
roots = renpy.game.log.freeze(None)
File "renpy/python.py", line 2142, in freeze
self.complete(False)
File "renpy/python.py", line 1726, in complete
self.current.stores[name], self.current.delta_ebc [name]= sd.get_changes(begin)
AttributeError: 'NoneType' object has no attribute 'stores'

Код скрипта

hide mh_smile_st
with moveoutleft
Hh "-Ну, зато поговорили дольше, чем за все наши диалоги на прошлой неделе вместе взятые"
$ renpy.pause(1.0)
// в этом месте меня возвращает в главное меню как после Return. Код не читается дальше этого. если я добавлю после Hh еще диалогов до паузы то все что до паузы будет работать и пауза тоже. после нее не работает ничего, ни лейбл ни сцена ни спрайты не показ. просто выкидывает в главное меню//
jump stores
label stores:

scene denkujz-68bbe039-55b3-490b-adbe-c8f47e9f2704
show hh_strog at right:
zoom 1.6
play music "audio/System_of_a_Down_-_Lonely_Day_47954602.mp3"
return
Сообщение отредактировал N1cHoNo - Вторник, 15/Мар/2022, 17:09

dmit

#1319
N1cHoNo
1) $ renpy.pause(1.0)  не проще ли  - pause 1.0
2) jump stores
label stores:  это что скачок на следующую строку? stores - не используйте такое имя оно явно может быть зарезервировано , см. в документации
3)после label : сцена -показ -картинки -включение звука -выход.   Что и происходит. Выполняется  код (за 3 мили сек) и выход. Поставте хотя бы паузу перед выходом, тогда увидите итог выполнения кода.
планета FOREVER!!!      Unkenbro team

N1cHoNo

#1320
Я идиот, ну конечно он будет без текста просто закрывать программу по достижению конца.
!!!!
Спасибо большое!!
Просто до этого сохранял и проверял всегда после текста, а тут забыл дописать)
Поиск: