Найти тему
Renpy с нуля

Часть 3. Варианты выборов.

Для начала короткий тест из 3-х вопросов по прошлой теме, чтобы закрепить знания:

превью
превью

Многих новичков очень привлекает возможность писать нелинейный сюжет и вместе с этим пугают целые полотна текста и непонятных значений.

В этой статье я максимально просто расскажу о том, как это сделать.

В прошлой статье мы с Вами придумали такой текст:

"Вы только что переехали в другой город."

"Квартира здесь, Вам досталась от покойного дядюшки, который переписал ее на Вас."

"Вы раскидали как попало вещи и собрались после долгой дороги, наконец, принять душ и пойти спать, как вдруг раздался звонок в дверь"

скрин1
скрин1

Давайте теперь предоставим игроку выбор:

"Открыть дверь"

или

"Пойти спать"

Как это сделать?

В renpy, любой выбор прописывается так:

menu:
"Вариант 1":
"Вариант 2":

Ничего сложного, правда?

Давайте теперь пропишем выбор для нашей ситуации:

скрин2
скрин2

menu:
"Открыть дверь":
jump open_door
"Идти спать":
jump go_sleep

скрин3
скрин3

Как видите, добавилась строчка "jump" (я специально выделил ее жирным шрифтом)

Зачем она нужна?

Слово jump - переводится как прыжок.

Соответственно, вы говорите программе, чтобы она "прыгнула" к значению, которое идет после этого слова.

Причем названия значений, к которым надо перейти, придумываете вы сами и они могут иметь любое имя.

Можете представить себе это как то, что Вы говорите программе зайти в комнату, которая имеет такое название.

Теперь как же нам построить эти самые комнаты?

Каждая комната обозначается словом label

Чтобы программа поняла в какую конкретно ей надо прыгнуть комнату, мы после слова "label" пишем название этой комнаты.

Выглядит это вот так:

скрин4
скрин4
label go_sleep:
"Вы решили не открывать дверь и пошли спать"
jump new_day

Не забывайте про двоеточия.

Двоеточие ставится в конце любого значения, если вы хотите придать ему какие-то свойства или поместить что-то внутрь него.

Это мы прописали один вариант.

Остался второй, когда Вы открываете дверь. Он будет подлиннее.

Давайте таким же образом, пропишем и его.

скрин5
скрин5

В этом варианте у нас уж есть небольшой диалог.

label open_door:
"Вы решили все-таки посмотреть кто там пришел"
"Когда Вы открыли дверь, то увидели на пороге девушку 18 лет, невысокого роста с большими голубыми глазами"
M "Я Маша — сходу сказала девушка."
M "Ты наш новый сосед?"
V "Эм... Да."
M "Понятно. Пока."
"Девушка развернулась и пошла прочь. Вы закрыли дверь."
"\"{i}И что это было?!{/i}\""
"Вы решили долго не думать над этим, приняли душ и легли спать."
jump new_day

Я думаю, вы заметили, буквы M и V перед репликами. Именно так вы говорите программе, какой персонаж будет произносить ту или иную фразу.

скрин6
скрин6
скрин7
скрин7

Итак, у нас получалось 2 варианта развития сюжета. Когда игрок сразу идет спать и когда открывает дверь и знакомится с девушкой.

В следующей статье я расскажу, как, наконец, вставить изображения фона, чтобы это не выглядело так, будто игрок говорит со всеми с закрытыми глазами.

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

================================================================

Если вам понравилась статья, не забудьте поставить лайк и подписаться на мой канал. Спасибо.