Учимся грамотно вызывать прыжки к меткам.
Вы ранее изучили что такое jump (jump lox….) так вот, а что нам делать если нам нужно временно перейти в 1 локацию после чего вернуться назад и продолжить текст? Тем способом что вы писали jump будет не очень красиво выглядеть(более 100 jump’ов из которых половина это возврат назад после прыжка и это только в короткой новелле). Для простоты и красоты написания существует команда call имя_метки. Что оно делает?
Допустим вам нужно продолжить 1 общую историю( допустим что будет одинаковой для всех 3 выборов без изменений, например Анжи сбежал, подрался а наследующее утро после произошедшего его эта банда подкараулила)
Сделав вызов 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) ### Ее координата
Картинка вот
Если вы сделали все правильно, то у вас в игре появился примитивный календарь( обратите где у вас картинка календаря прописана =) проверим вашу самостоятельность как вы наблюдательны к путям файла)
Так же можно и деньги прописать персонажам(отступы не забывайте)
screen cash:
add "service/money.png":
Align (.08,.05)
text ": [money]":
Align (.17,.07)
картинка монет а в игре дописываем
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 половина на изображении)
Теперь что значитх иу
Геометрию все помнят?
У – верх низ
Х– право лево
Еслиу илих отрицательное значение значит за границей полей изображения
Как их прописывать эти координаты?
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 ")
А как быть если нужно на изображении сделать якорь, как тут?
Делается это командой 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