Переопределить текст, вызываемый с помощью Character в игре Renpy

Я хотел бы изменить текст, отображаемый с использованием класса Character, для использования контекста.

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

Я искал класс Character и обратные вызовы Character, даже используя метод перевода, но не нашел ничего подходящего.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
1 558
1

Ответы 1

Не знаю, хорошо ли я понял, но я добавлю пример того, что понял, и вы мне скажете:

define hero = Character("[player_name]")
define sis = Character("Lola")
define mom = Character("Ariel")
define friend = Character("Elsa")

label start:
    hero "My name is :"
    $ player_name = ("What is your name ?")
    $ player_name = povname.strip()
    friend "Hey [player_name] !"
    sis "Hey bro !"
    mom "Hey son !"

Надеюсь, это похоже на то, что вы собираетесь получить. Теперь, если вы хотите использовать собственные имена, например, «Брат» вместо «Бро», вы можете просто:

default from_sis = ""
default from_mom = ""

label custom_names:
    $ from_sis = ("How does your sister call you ?")
    $ from_sis = povname.strip()
    $ from_mom = ("Same for your mother")
    $ from_mom = povname.strip()
    sis "Hey [from_sis]"
    mom "Hey [from_mom]"

Помните, что класс Character предназначен только для функции renpy.say, а строковая переменная, которую вы сохраните в качестве имени, используется только для записи ее в текстовые блоки. Любая другая строковая переменная может использоваться для чего угодно. Надеюсь, это была ваша проблема, и я ее исправил, если нет, я с радостью вам снова помогу :)

Другие вопросы по теме