Добавление полосы индикатора любви (Adding a Love Meter Bar)
Прежде всего, вам понадобится немного графики.
ВНИМАНИЕ: приведённый код предназначен для игры 1024x768. Если вы используете другой размер, потребуются корректировки.
Также! Отступ в начале каждой строки очень важен! Убедитесь, что вы оставили их нетронутыми!!!
Чтобы использовать эти графические полосы в индикаторе любви, добавьте этот код в файл script.rpy, в самом верху или в нижней части страницы options.rpy:
init -5 python:
#пользовательская полоса -----------------------
style.my_bar = Style(style.default)
style.my_bar.xalign = 0.5
style.my_bar.xmaximum = 315 # bar width
style.my_bar.ymaximum = 30 # bar height
style.my_bar.left_gutter = 5
style.my_bar.right_gutter = 5
# Я храню всю графику своего пользовательского интерфейса в одном файле с именем ui.
# Чтобы получить доступ к ним в моем коде, я помещаю ui/ перед всеми изображениями в этом файле.
style.my_bar.left_bar = Frame("ui/bar_full.png", 0, 0)
style.my_bar.right_bar = Frame("ui/bar_empty.png", 0, 0)
style.my_bar.hover_left_bar = Frame("ui/bar_hover.png", 0, 0)
style.my_bar.thumb = "ui/thumb.png"
style.my_bar.thumb_shadow = None
style.my_bar.thumb_offset = 5
В своем файле script.rpy, в самом верху, добавьте этот код для каждого персонажа, который получает индикатор любви. Это происходит в коде Жизель.
init -2 python:
## Персонаж Жизель --------------
giselle_love = 10 #Количество очков, с которого она начинает.
max_love = 150 #Максимальное количество очков, которое она может получить.
init python:
## ------------ Код активации очков любви -------------------
#Контролирует, когда появляется всплывающая подсказка.
show_giselle=False
## ------------ Плавучий измеритель очков любви --------------------
def stats_overlay():
# --- Любовная полоса Жизель -------
if show_giselle:
ui.frame(
xalign = 0.5, #центрированный
ypos = 400,) #400 пикселей сверху вниз
ui.vbox(xalign = 0.5)
ui.text ("Giselle's Love Points: %d" %giselle_love,
xalign = 0.5)
ui.bar(max_love, giselle_love,
style="my_bar")
ui.close()
config.overlay_functions.append(stats_overlay)
Затем, когда вы хотите показать добавление точек на полосе во время истории, вы попадаете в этот фрагмент кода:
$ show_giselle=True
# Это заставляет индикатор появиться.
pause 0.5
# В результате индикатор остаётся здесь на полсекунды, так что, когда очки добавляются,
# игрок может фактически "видеть" расширение индикатор.
$ giselle_love+=50
# Добавляет очки в индикатор.
show expression Text("{color=ffffff}{font=LHFmisterkookyREG_0.TTF}+50 Love Points{/font}{/color}",
size=50,
yalign=0.5, # Центрирует текст -- вниз
xalign=0.5, # Центрирует текст -- в право
drop_shadow=(2, 2)) as text
with dissolve
# Это текст объявления для индикатора любви, включая конкретный шрифт и цвет шрифта.
# Здесь указано, сколько баллов получает Жизель.
# Если вы используете этот код без замены имени шрифта на один в вашей игры,
# вы получите сообщение об ошибке.
$ show_giselle=True
# Это обновление, которое показывает увеличение очков на счетчике.
$ renpy.pause()
# Это сохраняет панель видимой, пока игрок не нажмет клавишу.
hide text with dissolve
# Это скрывает текст.
$ show_giselle=False
# Это скрывает индикатор.
Очень простой способ управлять кодом для всех ваших любовных индикаторов - создать совершенно новую вкладку (страница .rpy) и поместить весь код Python на эту страницу:
LoveMeter.rpy:
init python:
# контролирует, когда появляется поплавок очков-любви.
show_giselle=False
show_arthur=False
show_shino=False
## ------------ Поплавок очков-любви ----------------------
def stats_overlay():
# --- Любовный индикатор Жизель -------
if show_giselle:
ui.frame(
xalign = 0.5, #центрированный
ypos = 400,) #400 пикселей сверху вниз
ui.vbox(xalign = 0.5)
ui.text ("Giselle's Love Points: %d" %giselle_love,
xalign = 0.5)
ui.bar(max_love, giselle_love,
style="my_bar")
ui.close()
# --- Любовный индикатор Артура -------
if show_arthur:
ui.frame(
xalign = 0.5,
ypos = 400,)
ui.vbox()
ui.text ("Arthur's Love Points: %d" %arthur_love,
xalign = 0.5)
ui.bar(max_love, arthur_love,
style="my_bar")
ui.close()
# --- Любовный индикатор Шино -------
if show_shino:
ui.frame(
xalign = 0.5,
ypos = 400,)
ui.vbox()
ui.text ("Shino's Love Points: %d" %shino_love,
xalign = 0.5)
ui.bar(max_love, shino_love,
style="my_bar")
ui.close()
config.overlay_functions.append(stats_overlay)
init -2 python:
giselle_love=10
max_love = 150
arthur_love=10
max_love = 150
shino_love =10
max_love = 150
init -5 python:
#пользовательская полоса
style.my_bar = Style(style.default)
style.my_bar.xalign = 0.5
style.my_bar.xmaximum = 315 # bar width
style.my_bar.ymaximum = 30 # bar height
style.my_bar.left_gutter = 5
style.my_bar.right_gutter = 5
# Я храню всю графику своего пользовательского интерфейса в одном файле с именем ui.
# Чтобы получить доступ к ним в моем коде, я помещаю ui/ перед всеми изображениями в этом файле.
style.my_bar.left_bar = Frame("ui/bar_full.png", 0, 0)
style.my_bar.right_bar = Frame("ui/bar_empty.png", 0, 0)
style.my_bar.hover_left_bar = Frame("ui/bar_hover.png", 0, 0)
style.my_bar.thumb = "ui/thumb.png"
style.my_bar.thumb_shadow = None
style.my_bar.thumb_offset = 5
Источник[править | править код]
Статья "Adding a Love Meter Bar" на английском языке.
На главную страницу | Книга рецептов Энциклопедии Ren'Py | Форумы Lemma Soft | Вернуться к началу статьи |