КАК НЕ СТОИТ ДЕЛАТЬ КОММЕНТАРИИ



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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!