Top.Mail.Ru
Ответы

Вопрос по renpy

Мне нужно сделать, чтобы в функции, через которое вызывается screen, можно было задать параметр modal этого окна
И, по возможности, дайте совет, как заканчивать диалог с персонажем, чтобы он автоматически не переходил на следующий label

По дате
По рейтингу
Аватар пользователя
Ученик

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

Аватар пользователя
Мастер

Для того чтобы в функции, через которую вызывается screen в Ren'Py, можно было задавать параметр modal, вам следует определить этот параметр как аргумент функции и передавать его в screen при вызове. Вот пример того, как это можно сделать:

renpy

1234567891011121314151617181920212223
 # Определение функции с параметром 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

123456789101112131415161718192021
 label start:  
 
    "Привет, я персонаж!"  
 
    "Что ты хочешь сделать?"  
 
    menu:  
 
        "Выбрать вариант 1":  
 
            "Ты выбрал вариант 1."  
 
        "Выбрать вариант 2":  
 
            "Ты выбрал вариант 2."  
 
        "Закончить диалог":  
 
            "Ты закончил диалог."  
 
            return  # Здесь происходит завершение диалога и игра не переходит дальше 



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