Everlasting Summer

Everlasting Summer

Mods and user scenarios
Mods and user scenarios
Learn More
Нужен хелб от шарящих за код людей.
Сделал недавно простенький код который выбирает из таблицы строчки текста и показывает их на экране (код будет снизу).
Но возникла одна значимая проблема - я не могу задать максимальную длину текста для одной строчки, тобишь, xmaximum, вот сам код -
screen notes_table(): add "mods/Amnesia/Pictures/menu/bloco_de_notas.png" xpos 0.3 ypos 0.3 $ total_pages = len(just_store_text) // max_text_page if len(just_store_text) % max_text_page != 0: $ total_pages += 1 hbox xpos 0.3 ypos 0.5 xmaximum 15: spacing 100 # Adjust the spacing as needed. vbox xmaximum 15: for name in display_note_text(current_page)[:6]: text name style style.ah_of_course_sex xmaximum 15 vbox xmaximum 15: for name in display_note_text(current_page)[6:]: text name style style.ah_of_course_sex xmaximum 15 hbox: if current_page > 0: textbutton "Previous" action SetVariable("current_page", current_page - 1) if current_page < total_pages - 1: textbutton _("Next") action SetVariable("current_page", current_page + 1) text_size 50 vbox: xpos 0.7 ypos 0.75 textbutton _("Назад") action Hide("notes_table") text_size 50
Как можно заметить, я пытался засунуть xmaximum везде (в style кстати тоже стоит xmaximum).
Вот у меня нету ни одной идеи как это фиксить, помогите por favor.
< >
Showing 1-6 of 6 comments
2копейки 5 8 Nov, 2023 @ 11:06pm 
Зачем тебе это? Текст, по идее, при превышении длины контейнера автоматически переносится на следующую строку. Или тебе надо ограничить текст по величине контейнера?
Насколько я понимаю в стандарте этого нет. Иначе зачем тогда нужно это:

Ren'Py может зарегистрировать случаи, когда текст выходит за пределы области, отведенной для него. Чтобы включить ведение журнала переполнения текста, необходимо выполнить следующие действия:

Установить для переменной config.debug_text_overflow значение True.
Установить свойства стиля xmaximum и ymaximum для отображаемого текста, либо для контейнера, который его содержит.
Запустить игру.
Всякий раз, когда отображается текст, который выходит за пределы доступной области, RenPy регистрирует ошибку в файле text_overflow.txt.
Egberisss 4 9 Nov, 2023 @ 4:25am 
Originally posted by 2копейки:
Зачем тебе это? Текст, по идее, при превышении длины контейнера автоматически переносится на следующую строку. Или тебе надо ограничить текст по величине контейнера?
Насколько я понимаю в стандарте этого нет. Иначе зачем тогда нужно это:

Ren'Py может зарегистрировать случаи, когда текст выходит за пределы области, отведенной для него. Чтобы включить ведение журнала переполнения текста, необходимо выполнить следующие действия:

Установить для переменной config.debug_text_overflow значение True.
Установить свойства стиля xmaximum и ymaximum для отображаемого текста, либо для контейнера, который его содержит.
Запустить игру.
Всякий раз, когда отображается текст, который выходит за пределы доступной области, RenPy регистрирует ошибку в файле text_overflow.txt.
Так в этом и проблема, что как бы я не старался, контейнер (по какой то неведомой причине) не принимает максимума.
По итогу контейнер который по идее должнен иметь xmaximum условных 100, по итогу просто ничего не делает.
Last edited by Egberisss; 9 Nov, 2023 @ 4:28am
Сделал маленький тест:
$ t_name="1234567890 1234567890" $ config.debug_text_overflow=True screen notes_table: hbox xpos 0.3 ypos 0.5 xmaximum 350 ymaximum 150: text t_name vbox: xpos 0.7 ypos 0.75 textbutton _("Назад") action (Hide("notes_table"), Return()) text_size 50 ... call screen notes_table with dissolve

Всё работает. Если указать xmaximum 15 ymaximum 15, то в файл text_overflow.txt
Запишется:
File "game/mods/Test/Test.rpy", line 92, text overflow:
Available: (6, 6) Laid-out: (54, 21)
Text: [u'1234567890 1234567890']

P.S. В action добавил Return(), иначе экран подвисал. И maximum-ы считаются в пикселях, а не в символах.
p.p.s. name не самое лучшее имя для переменной. Она может совпасть с другой такой же.
Last edited by 2копейки; 9 Nov, 2023 @ 5:40am
Egberisss 4 9 Nov, 2023 @ 6:35am 
Originally posted by 2копейки:
Сделал маленький тест:
$ t_name="1234567890 1234567890" $ config.debug_text_overflow=True screen notes_table: hbox xpos 0.3 ypos 0.5 xmaximum 350 ymaximum 150: text t_name vbox: xpos 0.7 ypos 0.75 textbutton _("Назад") action (Hide("notes_table"), Return()) text_size 50 ... call screen notes_table with dissolve

Всё работает. Если указать xmaximum 15 ymaximum 15, то в файл text_overflow.txt
Запишется:
File "game/mods/Test/Test.rpy", line 92, text overflow:
Available: (6, 6) Laid-out: (54, 21)
Text: [u'1234567890 1234567890']

P.S. В action добавил Return(), иначе экран подвисал. И maximum-ы считаются в пикселях, а не в символах.
p.p.s. name не самое лучшее имя для переменной. Она может совпасть с другой такой же.
Снова не имею понятия почему, но даже этот тест у меня не задает максимум картинке.
И кстати название переменной name, оно не роляет, так как все данные у меня берутся из таблицы -
$ just_store_text = [ ]
Через for.
И еще, немного не понял к чему примечание к xmaximum, у меня же там стоят как раз пиксели.
Кстати, что бы я не творил с xmaximum, $ config.debug_text_overflow=True почему то не выдает вообще ничего.
Картинку я не тестировал (обрезается она или нет). А вот текст при уменьшении xmaximum переносится на вторую строку. Про пиксели я сказал, потому что 15 пикселей это очень мало - одна-две буквы.
tex_overflow.txt должен создаваться в каталоге игры (не мода), там же где log.txt и traceback.txt
Egberisss 4 9 Nov, 2023 @ 10:50am 
Originally posted by 2копейки:
Картинку я не тестировал (обрезается она или нет). А вот текст при уменьшении xmaximum переносится на вторую строку. Про пиксели я сказал, потому что 15 пикселей это очень мало - одна-две буквы.
tex_overflow.txt должен создаваться в каталоге игры (не мода), там же где log.txt и traceback.txt
Про 15 пикселей - тут уже просто я от безвыходности и апатии вписал абсурдно мелкие цифры, чтобы хоть что то протестить.
А вот text_overflow наконец нашел. Я в прошлый раз вбил поиск файла в папке игры и мне его не нашло, вот и подумал что его нету. Буду теперь смотреть что там происходит.
< >
Showing 1-6 of 6 comments
Per page: 1530 50