КАК НЕ СТОИТ ДЕЛАТЬ КОММЕНТАРИИ
Https://tproger.ru/articles/comments-in-code/
Меню
Наконец-то мы дошли до главного составляющего большинство новелл - меню выбора.
Для вызова этой функции используют команду « menu :»
Например:
Вам нужно задать вариант выбора действия: проснется ли главный персонаж или нет. Давайте пропишем в сценарии варианты выбора.
После « menu :» вам потребуется сделать +4 пробела на следующей строке.
Т.е. перед « menu :» мы имеем 4пробела, после «:» необходимо будет прописать на следующей строке +4 пробела. Что бы прописать в « menu :» варианты выбора (отмечено цифрами) и прописать текст.
Варианты выбора - 8 пробелов от начала строки.
Текст выбора - 12 пробелов от начала строки.
Если текст сюжета не поменялся после выбора, то прописывайте дальше текст как он шел раньше (в метке « start » пишем, а это 4 пробела от края)
**** menu : ###4 отступа
********"1)Проснуться":###8 отступов
************"Где эт я…"###12отступов
********"2)Спать дальше":###8 отступов
************"Как хорошо спится…"###12 отступов
**** uchi "А кто это у нас спит на уроке"###4 отступа
****"Ты почувствовал, как кто-то схватил тебя за ухо"###4 отступа
Так же можно сделать что бы одновременно высвечивалось меню и диалоговое окно
· ****menu:
· ********e " Текст в диалоговом меню
· ********"1 Вариант выбора":
· ************e "ОК."
· ********"2 Вариант выбора":
· ************e " Ок "
Вызовы и Прыжки
Мы разобрали, как текст будет выглядеть, если текст не поменяется, а если события от выбора будут различными? Например главный герой стукнет того кто его за ухо тянет, или наоборот извинится за свое поведение. Тут можно использовать 2 варианта.
|
|
Call
Вызвать текст метки (а так же скрипт экрана, кнопку и многое другое) или временно перенестись в другую локацию то для этого используют функцию « call »
· **** menu :
· ********"Стукнуть обидчика":
· ************"Я" "Руки убрал"
· ************ call bad _ boy
· ********"Извините":
· ************"Я" "Такое больше не повторится"
· *********** call good _ boy
Мы в вариантах прописали вызов 2 меток: call bad _ boy и call good _ boy . В сценарии у нас их нигде нет, и если мы сохранимся и запустим приложение, то выйдет ошибка.
Что бы ее исправить, нужно создать 2 метки.
Для удобства давайте создадим файлы сценария. Для этого нажмите на иконку, белого листа (или зажмите CTRL + N) и сразу сохраните его (CTRL + S)
Когда даете имя сценариям пишите их на анг языке и в конце прописывайте формат . rpy
Теперь потребуется зайти в сценарий good _ boy . rpy и там вам нужно прописать текст метки good _ boy
label good_boy:
****uchi "Хорошо, сядь на место"
****return
И создаем сценарий bad _ boy . rpy где пропишем следующее
label bad _ boy :
|
|
**** uchi "Что ты себе позволяешь!"
****"Я" "Простите..."
**** uchi "После уроков останешься дежурить"
**** return
В конце вызываемой call всегда прописывают return , что следующую метку, которая тут будет еще прописана, программа автоматически не запустила следом, а откатилась в предыдущее действие.(а именно туда где мы ее вызвали, т.е. в сценарий script . rpy и пропишем текст в метке start
uchi "Продолжим урок"
Jump
Предыдущие варианты вызовов меток подходят, если у вас текст будет идти к единому концу( Happy End ).
Но что бы сделать несколько концовок, используют прыжки « jump ».
В отличии от « Call »(которую вызывают) « jump » именно делает прыжок к нужной вам метке, без возможности вернуться назад(если обратно не записать прыжок в тот же файл сценария) и там команда return вызывает именно завершение проекта( Game Over )
«Поиграйте» с командами call и jump . Сделайте пару своих концовок и вызовов, что бы лучше понять их назначение.
Работа с текстом(тэги)
В программе Ren’Py собрано множество различных тегов по изменению текста в проекте.
Пример использования в коде данных тегов
· label start:
· uchi "Приветствую Вас"
· " {u}Первое{/u} что сказал он, \ n когда зашел в класс"
|
|
· deti "Здравствуйте учитель!"
· "Хором произнес класс"
Я приведу список самых часто используемых тегов по изменению текста
1)Добавить кавычки в текст "\" текст \" "
2)Перенести текст на следующую строку \n
3)Применение полужирного начертания {b}текст{/b}
4)Применение курсивного начертания {i}текст{/i}
5)Подчеркивание текста {u}текст{/u}
6 )Добавление линии, проходящее посередине текста {s}текст {/s}
7)Увеличить размер текста
{size=+число} текст{/size}
8)Уменьшить размер текста {size=-число} текст{/size}
9)Сделать посередине текста паузу {w}
альтернативный вариант(только еще переносит строку) {p}
10)Сделать паузу на короткое время (1сек) {w=1}
альтернативный вариант(только еще переносит строку) {p=1}
11)Вставить изображение или смайл в текст {image=exclamation.png} где после знака = путь к картинке
12)Поменять цвет текста{color=#008000}текст{/color}
13)Создать сверху текста надписи(их правильного произношения) {rb}Ren'Py{/rb}{rt}Рен-Пай{/rt}
14)Сделать текст вертикальным {vert}текст {/vert}
15)Сделать горизонтальный текст(вы на нем пишите автоматически) {horiz}текст{/horiz}
16)Создать в проекте ссылку на сайт {a=https://www.renpy.org}Текст ссылки{/a}
|
|
17)В старых версиях гиперссылки создавались так {a=define_hyperlink} Гиперссылка{/a}
а потом в сценариях создавалась ссылка на нее label define_hyperlink:
в новой версии ее сделали проще
{a=jump:a_label} прыжок в метку a_label{/a}.
{a=call:a_label} вызываем метку a_label{/a}.
Существуют также {a=show:screen} и {a=showmenu:screen}, которые показывают экраны в игре и в контексте меню, соответственно(например, не забудьте сохраниться и ссылка в тексте на сохранение и т.д.).
Так же в гиппер ссылках есть жесткая пауза. Пока вы не выберете пункт экран не на что не реагирует, прописывают в конце (advance=False)
· Ellen " Хотели бы Вы идти { a = jump : living _ room } на запад {/ a } или { a = jump : kitchen } на север {/ a }?" (advance=False)18)Сделать текст прозрачным
{alpha=0.1}Этот текст стал прозрачней на 10%{/alpha}
19)Заставить появляться текст с определенной скоростью {cps=25}текст{/cps}
20)Поменять шрифт текста{font=DejaVuSans-Bold.ttf}Текст{/font}
21)Уменьшить отступы символов между собой
{k=-.5}текст{/k} и наоборот {k=.5}текст{/k}
22)Сделать отступ горизонтальный(пустое пространство)
«текст {space=30} текст»
23)Сделать отступ вертикальный(между строками) {vspace=30}
24)Немедленно перейти к следующему тексту и использовать разные переходы
"диалог{nw}"
with fade
"диалог"
25)Что бы переменная отображалась в переводе, в конце нее ставят !t
$ translatable = _("переводимый текст")
"текст [translatable!t] "
26)Вывести весь текст сразу на экран. "текст {fast} весь текст"
Специальные персонажи
В Ren’Py существуют специально прописанные персонажи, они уже заранее прописаны в приложении и вызываются точно так же как и обычные имена-ссылки. Вот примерный их список
1)Персонаж Centered
Он позволяет вам писать текст на середине экрана (диалоговое окно убирается). Очень часто используется в сочетании черного и белого фона.
· ****scene black
· ****centered " Первое что сказал он, когда зашел в класс"
2) Персонаж vcentered
Все аналогично 1 персонажу только вертикально (очень удобно на нем иероглифы прописывать)
· ****scene black
· **** v centered " Первое что сказал он, когда зашел в класс"
·
3) Персонаж extend
Он позволяет расширить предыдущую строку диалога дополнительным текстом, т.е. он позволяет делать различные вещи во время диалога. Пример
· ****show eileen vhappy ### Спрайт шок
· **** extend " Кошмар,"
· **** show eileen kosmah ###спрайт крик
· **** extend "Я деньги забыла!!!"
И получаем: идет сплошной текст: Кошмар, Я деньги забыла!!! только после слова кошмар спрайт авт меняется, ед. условие текст должен идти плавно, а не мгновенно. Тогда будет эффект.
4) Персонаж expression
Аналог 1 спец персонажа, только диалоговое окно не убирается
show expression Text(_(" Это - текст ." size=50, yalign=0.5, xalign=0.5, drop_shadow=(2, 2)) as text
Дата добавления: 2018-10-27; просмотров: 885; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!