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

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

Admin

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

MrGeo

#1037
Цитата Floyd ()
MrGeo,Обводка для всего текста в игре, вставлять в gui.rpy:
Код
init python:   
    style.default.outlines = [ (2, "#000", 0, 0) ]
Блин, спасибо огромное. А откуда можно такую информацию черпать? Как ни пытался гуглить, такого точного решения не нашел. Даже пример видел, где обводка была с одного угла больше, чем с другого, с чего подумал что тенью можно сделать.

Floyd

#1038
MrGeo, официальная документация и форум lemmasoft. На английском языке всё, конечно, но если надо на русском - у нас есть СОНЦЕ, который, согласно мифам и легендам, о ренпае знает больше, чем его создатели.

Katruna

#1039
И да, второй раз за день я сюда  smile_13  Ну не получается у меня каменный цветок, без помощи..
В общем, задумала я сделать таймер для некоторых выбор в проекте.. и не смогла.. нашла несколько вариантов в сети и все они при копировании в код выдают страшные ошибки..
(наверное потому что статьи в основном за 2016 год)

Потому прошу помощи.. в идеале бы с пояснениями, что и за что отвечают кусочки кода..
(в планах сделать еще и крафтовый таймер этот)
Художник в душе и в жизни
Дракон в душе и в жизни
Butterfly effect

СОНЦЕ

#1040
Katruna,
вот явно допотопный код из загашника ренпи-мануалов выдавал страшные ошибки потому что не был объявлен персонаж "Эйлин" а в остальном работает как шарм

Код

  screen countdown:
    timer 0.01 repeat True action If(time > 0, true=SetVariable('time', time - 0.01), false=[Hide('countdown'), Jump(timer_jump)])
    bar value time range timer_range xalign 0.5 yalign 0.9 xmaximum 300

label start:

label menu1:
    $ time = 5
    $ timer_range = 5
    $ timer_jump = 'menu1_slow'
    show screen countdown
    menu:
        "Кыбрать Котоноху":
            hide screen countdown
            "Макото выбрал Котоноху."
            jump menu1_end
        "Выбрать Секай":
            hide screen countdown
            "Макото выбрал Секай"
            jump menu1_end
   
label menu1_slow:
    "Макото стормозил потому что выбрал втихаря обоих."
    
label menu1_end:
    "И теперь ему гаплык."

    return


как оно работает:

Код

  screen countdown:
    timer 0.01 repeat True action If(time > 0, true=SetVariable('time', time - 0.01), false=[Hide('countdown'), Jump(timer_jump)])
    bar value time range timer_range xalign 0.5 yalign 0.9 xmaximum 300

вот эта ^^^ штука -- это дополнительная менюшка, которая через какоето время самозакрывается и выдергивает игрока на указанный label . где строчка timer это сам таймер, а bar - это то как он отображается на экране
использует переменные time, timer_range и timer_jump соответсвенно текущее время, время старта, и label куда отправлять если игрок тормоз. следует задавать их значения перед каждым запуском
Сообщение отредактировал СОНЦЕ - Понедельник, 22/Фев/2021, 14:55

MrGeo

#1042
Floyd, а есть возможность обводку сделать только у диалогов и имен персонажей? А то в главном меню и сохранениях выглядит это не очень.
Путем интернет поиска пришел к вот такому:
Код
define gui.text_outlines = [ (1, "#000", 0, 0) ]
 Но результат после удаления вашего кода не изменился от слова совсем, а почему, не понимаю.

stop_control

#1043
Цитата MrGeo ()
Floyd, а есть возможность обводку сделать только у диалогов и имен персонажей?


Код
define anya = Character('Аня',                     # Главной герой
    color="#f0f000",                    # Цвет имени
    what_color="#ffffff",                             # Цвет текста
    who_outlines=[ (1, "#000000") ] )                   # Обводка, Цвет обводки для имени
 
для текста диалога вроде надо писать так

     what_outlines=[ (1, "#000000") ]
«Иди пожалуйся своей мамочке»

СОНЦЕ

#1044
MrGeo
как и описал выше stop_control,  цвета и цвета обводки (и ещё много чего) назначаются каждому отдельному персонажу через who_ и what_ касаемо соответственно имени персонажа и что он говорит.

если персонажей не сотни, можно вписать настройки для каждого, например задав персонаж болванчик а затем передав его параметры через kind

Код

define outline = Character(None,who_outlines =  [ (1, "#880", 0, 0) ], what_outlines =  [ (1, "#880", 0, 0) ] ) #болванчик
define narrator = Character(kind=outline)
define r = Character('Romeo',kind=outline, what_color = '#0aa')
define j = Character('Jouliette',kind=outline, what_color = '#a0a')

label start:
    scene expression '#666'
    'let the story begin!'
    r 'I luveth thee Jouliette!'
    j 'Alas! My own Romeo...'
    return

label main_menu:
    return

MrGeo

#1045
СОНЦЕnlove cпасибо, с kind гениальное решение, а есть возможность добавить обводку к персонажу без define?

СОНЦЕ

#1046
Цитата MrGeo ()
а есть возможность добавить обводку к персонажу без define?


Ээээ nwhat

Перепоясни что именно хочешь, потому что технически

Код

define outline = Character(None,who_outlines =  [ (1, "#880", 0, 0) ], what_outlines =  [ (1, "#880", 0, 0) ] ) #болванчик
define narrator = Character(kind=outline)
define r = Character('Romeo',kind=outline, what_color = '#0aa')
define j = Character('Jouliette',kind=outline, what_color = '#a0a')


можно поменять на

Код

init python:
    outline = Character(None,who_outlines =  [ (1, "#880", 0, 0) ], what_outlines =  [ (1, "#880", 0, 0) ] ) #болванчик
    narrator = Character(kind=outline)
    r = Character('Romeo',kind=outline, what_color = '#0aa')
    j = Character('Jouliette',kind=outline, what_color = '#a0a')


и вот, без define. но мне кажется это не то что тебе нужно

MrGeo

#1047
СОНЦЕ, я имею ввиду моменты, когда персонаж приходит на пару строк, и чтобы не добавлять его в define, прописывается 
Код
'Имя' 'Его текст'

СОНЦЕ

#1048
MrGeo,
внезапно нашлись дефолтные переменные для текста чтоб не задевать менюшки и прочее nlove

Код

    style.say_label.outlines = [ (2, "#ff0", 0, 0) ]             #Для имён
    style.say_dialogue.outlines = [ (1, "#08f", 0, 0) ]      #Для текста


всьо, можно костыли не городить
Сообщение отредактировал СОНЦЕ - Среда, 24/Фев/2021, 16:41

MrGeo

#1049
СОНЦЕ, спасибо, я уже жизнь переосмыслить успел.  Можно сделать так, чтобы в сохранении не записывалось ничего? Ну или чтото другое, кроме даты? Или шрифт этого текста изменить?

Добавлено (24.02.2021, 19:03)
---------------------------------------------
Не нашел функцию редактирования, напишу еще одно сообщение.
*Размер шрифта, а не сам шрифт

СОНЦЕ

#1050
MrGeo, ты хочешь убрать текст со слотов сохранения и оставить только картинку скриншот?
тогда зайди в screens.rpy найди там screen file_slots а в нём:

Код

                    button:
                        action FileAction(slot)

                        has vbox

                        add FileScreenshot(slot) xalign 0.5

                        text FileTime(slot, format=_("{#file_time}%A, %B %d %Y, %H:%M"), empty=_("empty slot")):
                            style "slot_time_text"

                        text FileSaveName(slot):
                            style "slot_name_text"

                        key "save_delete" action FileDelete(slot)


закомментируй (или удали) эти строчки

Код

                        text FileTime(slot, format=_("{#file_time}%A, %B %d %Y, %H:%M"), empty=_("empty slot")):
                            style "slot_time_text"

                        text FileSaveName(slot):
                            style "slot_name_text"


ну или напиши в них то что тебе нужно с:
Поиск: