Форум Anivisual закрыт. Вы не можете создавать новые темы или писать ответы. Форум будет работать в режиме архива.
Пользователи · Поиск по форуму · · · Регистрация

Форум о визуальных новеллах » Для разработчиков » Ren'Py » Помощь по Ren'Py (Вопрос\Ответ)
Помощь по Ren'Py (Вопрос\Ответ)

Admin

#1
Сюда пользователи сайта могут писать вопросы о тех или иных функциях движка Ren'Py, а мы попытаемся на них ответить:)

СОНЦЕ

#991
pirsus
за выборы в меню как и отметил dmit, отвечает screen choice который находится в screens.rpy

вот так он выглядит по умолчанию
Код

screen choice(items):
    style_prefix "choice"
    vbox:
        for i in items:
            textbutton i.caption action i.action


сделай вот так
Код

screen choice(items):
    style_prefix "choice"
    vbox:
        align (.0,.0)     #<--- ВСТАВИТЬ ВОТ ЭТУ СТРОЧКУ ДЛЯ СМЕЩЕНИЯ В ЛЕВЫЙ ВЕРХНИЙ
        pos (50,50)      #<--- А ВОТ ЭТУ ДЛЯ ОТСТУПА НА 50-50 ПИКСЕЛЕЙ ВНИЗ НАВПРАВА
        for i in items:
            textbutton i.caption action i.action


чтоб переменная менялась по таймеру в реальном времени предлагаю сделать следующее

1.загнать менялку переменной в функцию
2.прописать периодический вызов функции через экран
3.показывать экран каждый раз когда нужно чтобы переменная в реальном времени менялась

вот так
Код

define th = 0

init python:
    def change_th():
        global th
        th = renpy.random.choice((1,2))
        return

screen th_change_repeat:
    timer .5 repeat True action Function(change_th)
    text str(th) align (.5,.5)  #цифра показываться на экране не будет если эту строчку убрать

label start:
    show screen th_change_repeat
    pause
    return

pirsus

#992
Спасибо, ребята, вы нереально помогаете! nwow2 


Код
screen choice(items):
    style_prefix "choice"
    vbox:
        align (.0,.0)     #<--- ВСТАВИТЬ ВОТ ЭТУ СТРОЧКУ ДЛЯ СМЕЩЕНИЯ В ЛЕВЫЙ ВЕРХНИЙ
        pos (50,50)      #<--- А ВОТ ЭТУ ДЛЯ ОТСТУПА НА 50-50 ПИКСЕЛЕЙ ВНИЗ НАВПРАВА
        for i in items:
            textbutton i.caption action i.action
Эта вставка на меню не повлияла
Но чуть ниже в этом же блоке выставление точек помогло.

Код
style choice_vbox:
    xalign 0.0
    ypos 70
    xpos 70
    yanchor 0.5


В итоге получилось прям то, что надо
Прикрепления: 2124413.png (152.7 Kb)

pirsus

#993
По изменению переменной:

А как мне добавить к ней еще и случайный таймер?
 
Код
timer .5 repeat

Мне надо будет задублировать верхнюю фенкцию (на питоне), чтобы создать еще одну случайную переменную для таймера?

А вот что получилось с менюшками:
Прикрепления: 9308948.png (56.1 Kb)

stop_control

#995
Привет.
Когда надо отобразить текст в виде картинке в RenPy:

show text "01234567890":
    xpos 800
    ypos 200
    zoom 0.1
    alpha 0.1

А как, тоже самое сделать в Python?
Сообщение отредактировал stop_control - Четверг, 07/Янв/2021, 22:49
«Иди пожалуйся своей мамочке»

Tailsrus

#996
Привееет :3 у меня тут проблемка возникла. Ее суть в том что мне нужно сделать так, чтобы при нажатий на заранее приготовленную
область, менялось значения переменной на необходимую мною. Проблема заключается в том что я ни могу найти подходящую команду.


Код
screen info:
   mousearea:
      area (458, 672, 42, 44)
      hovered Show("buttons")
      unhovered Hide("buttons")

screen buttons:
   button:
      action AddToSet ($ health = 1)

pirsus

#998
Цитата Tailsrus ()
Привееет :3 у меня тут проблемка возникла. Ее суть в том что мне нужно сделать так, чтобы при нажатий на заранее приготовленнуюобласть, менялось значения переменной на необходимую мною. Проблема заключается в том что я ни могу найти подходящую команду.

Можно использовать имейджмапы

screen IMAGEMAP (название):

    imagemap:
        ground "back.png"
        hover "hover.png"

        hotspot (1680, 255, 1680+175, 255+170)  clicked:
            $ твоя переменная = 
            Jump("нужный лейбл")

Добавляешь столько хотспотов, сколько надо

        
label Название:
    call screen  IMAGEMAP (название):

СОНЦЕ

#999
stop_control,

если текст и трансформ к нему изначально задефинировать то например вот так

Код


init python:
    renpy.image('test_text',Text('TEST'))

transform test_transform:
    zoom 6.0
    pos (500,500)
    alpha .2

label start:    
    python:
        renpy.show('test_text',at_list=[test_transform])
        
    pause
    return

stop_control

#1000
А как задать переменную с несколькими значениями?
$ test_text = ('0','1','2','3','4'','5','6')
Сообщение отредактировал stop_control - Суббота, 09/Янв/2021, 17:03
«Иди пожалуйся своей мамочке»

pirsus

#1001
Цитата stop_control ()
А как задать переменную с несколькими значениями?$ test_text = ('0','1','2','3','4'','5','6')
Не уверен, что переменная может иметь несколько значений одновременно.
Думаю, только одно. Иначе игра не будет знать, какое из значений принимать.

Можно сделать вот так:
 
Код
init:
$ peremennaya = 0  
#Это начальное значение этой переменной

label:
#В нужный момент игры

$ peremennaya  = renpy.random.randint(0,6)
Эта команда назначает в нужный момент игры нашей переменной значение от 0 до 6.
И так можно переназначать бесконечно много раз.

stop_control

#1002
Это был вопрос в рамках ответа кода Солнце (выше).

Смысл в том, чтобы выбрать один из текстовых символов в массиве

drop_name = random.choice(drop)

Если использовать картинки, то все работает. Если текст, то выводит только первый элемент...
«Иди пожалуйся своей мамочке»

pirsus

#1004
Можно тупой вопрос?

Мне нужно затемнить сцену, удалив все присутствубщие изображения.
Т.е. использовать оператор scene

Можно ли его применить, не назначая ему изображение, а используя числовую цвета?
типа

scene '#ffffff'

?

Добавлено (10.01.2021, 00:11)
---------------------------------------------
Вопрос снят.
Решился прописыванием

image fon = "#000000"
и уже потом 
scene fon

Форум о визуальных новеллах » Для разработчиков » Ren'Py » Помощь по Ren'Py (Вопрос\Ответ)
Поиск: