Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вопрос по renpy

Таисия Саввина Ученик (157), на голосовании 1 год назад
Мне нужно сделать, чтобы в функции, через которое вызывается screen, можно было задать параметр modal этого окна
И, по возможности, дайте совет, как заканчивать диалог с персонажем, чтобы он автоматически не переходил на следующий label
Голосование за лучший ответ
Евгений Овсянников Мастер (2094) 1 год назад
Для того чтобы в функции, через которую вызывается screen в Ren'Py, можно было задавать параметр modal, вам следует определить этот параметр как аргумент функции и передавать его в screen при вызове. Вот пример того, как это можно сделать:

renpy
 # Определение функции с параметром modal  

python:

def show_custom_screen(modal):

# Ваш код для определения экрана

# Используйте modal внутри экрана, чтобы установить его modal-свойство

screen custom_screen():

modal True if modal else False # Устанавливаем modal, если modal=True

# Остальные настройки экрана



# Вызов функции с параметром modal

show_custom_screen(True) # Показать экран как модальный

show_custom_screen(False) # Показать экран как немодальный


Чтобы завершить диалог с персонажем и предотвратить автоматический переход на следующий label, вы можете использовать команду return. Например:

renpy
 label start:  

"Привет, я персонаж!"

"Что ты хочешь сделать?"

menu:

"Выбрать вариант 1":

"Ты выбрал вариант 1."

"Выбрать вариант 2":

"Ты выбрал вариант 2."

"Закончить диалог":

"Ты закончил диалог."

return # Здесь происходит завершение диалога и игра не переходит дальше


Используя команду return, вы можете контролировать, когда диалог завершается, и предотвращать автоматический переход на следующий label.
Таисия СаввинаУченик (157) 1 год назад
Имба! спасибо огроменнейшее
Таисия СаввинаУченик (157) 1 год назад
единственное, python не позволяет создавать screen'ы в своем теле
Евгений Овсянников Мастер (2094) Таисия Саввина, Извините за путаницу. Действительно, в Ren'Py нельзя создавать экраны непосредственно внутри Python-кода. Вместо этого экраны должны быть определены в специальных файлах экранов, как часть вашего проекта в Ren'Py. Чтобы динамически изменять свойства экрана, такие как modal, вы можете использовать атрибуты экрана и операторы условия в самом скрипте Ren'Py. Например: renpy
 screen my_screen: 
    window: 
        modal "Этот экран модальный!" if modal else "Этот экран не модальный!" 
rettg hgh Ученик (166) 1 год назад
init:
$ modal = False

label start:
# Вызов функции с параметром modal
call screen_with_modal(True)

# Продолжение диалога только после закрытия модального окна
if not modal:
jump dialogue

label dialogue:
# Диалог с персонажем
show character "character.png"
"Продолжение диалога..."

# Закрытие модального окна
$ modal = False

jump start

def screen_with_modal(modal):
# Определение экрана с модальным окном
modal_window:
frame:
modal True if modal else False
title "Модальное окно"

vbox:
label "Содержимое модального окна"

# Открытие модального окна
$ modal = True
open modal_window
Похожие вопросы