Учимся грамотно вызывать прыжки к меткам.

Вы ранее изучили что такое jump (jump lox….) так вот, а что нам делать если нам нужно временно перейти в 1 локацию после чего вернуться назад и продолжить текст? Тем способом что вы писали jump будет не очень красиво выглядеть(более 100 jump’ов из которых половина это возврат назад после прыжка и это только в короткой новелле). Для простоты и красоты написания существует команда call имя_метки. Что оно делает?
Допустим вам нужно продолжить 1 общую историю( допустим что будет одинаковой для всех 3 выборов без изменений, например Анжи сбежал, подрался а наследующее утро после произошедшего его эта банда подкараулила)

Учимся грамотно вызывать прыжки к меткам. - student2.ru

Сделав вызов call,после завершения метка нас сама назад отправит в сценарий откуда во был сделан вызов.
Применений много у этой команды. Допустим вызов инвентаря, мини игры и т.д.

Учимся создавать текст на экране и научимся определять координаты ее

Давайте начнем мы с создания самого простого календаря
Для этого давайте создадим сценарий knopki.rpy где пропишем следующее
(не забывайте про отступы)

Screen kalendar: ###наш календарь и в нем прописываем все, без отступов

….add "service/calendar.png": ###картинка календаря с путем к ней

……..zoom 1.5

……..align (.26,.025) ### Ее координата

….text "[day]": ### текст переменной day которая будет меняться в течении все игры

……..color "#000000" ### цвет кнопки

……..if day < 10: ###условие при меньше 10 day

………….align (.27,.07)### Ее координата

……..else:###не прошла проверку там больше 10 day

…………align (.265,.07) ### Ее координата

Картинка вот Учимся грамотно вызывать прыжки к меткам. - student2.ru

Учимся грамотно вызывать прыжки к меткам. - student2.ru

Если вы сделали все правильно, то у вас в игре появился примитивный календарь( обратите где у вас картинка календаря прописана =) проверим вашу самостоятельность как вы наблюдательны к путям файла)


Так же можно и деньги прописать персонажам(отступы не забывайте)
screen cash:

add "service/money.png":

Align (.08,.05)

text ": [money]":

Align (.17,.07)

картинка монет Учимся грамотно вызывать прыжки к меткам. - student2.ru а в игре дописываем

label start:

$ day = 1

$ money = 1

Show screen kalendar

Show screen cash

$ udacha = 0 и т.д.

Кнопки


Что бы отобразить кнопку в игре, ее требуется отобразить сначала в screen, а потом вызывать ее в игру.

Есть 2 вида кнопок imagebutton(изображение, пример в игре найти надо картинку девушки и через него кнопка-девушка прописывается) и textbutton(сухой текст, нажав на которую мы перейдем куда то)


Imagebutton

Граф кнопка имеет примерно такую структуру

Screen vasja: ###ссылка кнопки
….imagebutton: ###Кнопка

……….align (0.5, 0.5)### ее координата

………..idle "bin.png"### изображение 1 в покое

…………hover "bin.png"### изображение 2 при наведении

…………action Hide ("gruppa_tatu") ### кнопка должна что-то делать, иначе она не будет закрывать собой кнопки на заднем плане, и их можно будет нажать "через" картинку. В кавычках мы прыгаем в метку( gruppa_tatu )

…………focus_mask True ### только непрозрачная часть кнопки будет активна - т.е. мы сможем взаимодействовать с задним планом в том месте, где картинка прозрачна

И в метке старт вызываем call screen vasja или show screen vasjaв зависимости от того что вам нужно от этой кнопки

Textbutton

Все аналогично предыдущей кнопки

Screen vasja:

textbutton "X" action [Hide("binoculars"), Hide("back_view") ] yalign 0.0 xalign 0.5

или

textbutton "X" action Hide("gruppa_tatu") yalign 0.0 xalign 0.5
в метке старт вызываем call screen vasja или show screen vasjaв зависимости от того что вам нужно от этой кнопки

Координаты изображения

Ранее мы умели прописывать координаты спрайтов(at centerи т.д) Но допустим нам требуются именно точные координаты(как например кнопкам) тогда (at center и другие) не подойдут нам.


Для этого у нас есть короткие команды
xpos 500 ypos 500 –точные координаты

pos=(475, 50)

xalign 0.5 yalign 0.5 -% положение координаты на экране(0.5 половина на изображении)

Теперь что значитх иу
Геометрию все помнят?

У – верх низ

Х– право лево

Еслиу илих отрицательное значение значит за границей полей изображения

Учимся грамотно вызывать прыжки к меткам. - student2.ru

Как их прописывать эти координаты?

1) Как анимацию алт

image pos = "target1.png"

потом в

label start:

show pos:

xanchor 0.5 yanchor 0.5 xpos 0.5 ypos 0.5 ###(ровно посередине экрана)

2) Обычным способом

textbutton "X" xpos 100 ypos 200 action Hide("gruppa_tatu ")

А как быть если нужно на изображении сделать якорь, как тут?

Учимся грамотно вызывать прыжки к меткам. - student2.ru

Делается это командой anchor

image anchor = "target2.png"
image logo blue = "logosolid.png"

в метке старт прописывается
show logo blue: ###”Эйлин

Xpos 300 ypos 100

Show anchor: ###Крестик

Xanchor 0.5 yanchor 0.5

Xpos 300 ypos 100

With dissolve

Учимся грамотно вызывать прыжки к меткам. - student2.ru

Наши рекомендации