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

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

Admin

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

Кира353

#1276
Подскажите как лучше сделать счетчик числовых переменных в новелле. Нужно чтобы за определенный ответ прибавлялось или отнималось к примеру по 1 очку, Если игрок пройдет игру, в конце по итогу суммы выйдет какая -то концовка.
Не могу понять как сделать...

Katruna

#1277
Кира353, Привет. Тут достаточно все просто, объясню на примере своего же куска кода.
В начале игры, сразу после строчки "label start" надо прописать все необходимые переменные, которые будешь использовать для выхода на те или иные концовки.


Код
label start:

    $ red = 0
    $ green = 0
    $ blue = 0
 
У меня здесь 3 переменных, т.к. есть три персонажа, на чьи концовки можно выйти. Переменные задаются таким образом, пишешь знак $ и после него название переменной. Оно может быть любое.

Далее, нам нужно прописать, в каких ситуациях, переменные изменяются. Я чаще всего делаю, это в момент выбора действия.

Код

  menu:
        "Тем более, никто из девушек точно не сможет отказаться от моего предложения, ведь я..."    
        "Такой умный и рассудительный парень.":
            $ green +=1
            jump first
        
        "Такой сильный и страстный парень.":
            $ red +=1
            jump second
        
        "Такой неотразимый и авантюрный парень.":
            $ blue +=1
            jump third

Что тут происходит? Игроку дан выбор, menu запускает возможность выбора, и в каждом из выборов дает очки к той или иной переменной. т.е. делая выбор, игрок в любом случае получит +1 очко к какой-то из концовок.
п.с. не обязательно давать очки в момент развилки, можно в любой момент написать просто

Код
$ red +=1
к нужной переменной и программа запомнит, что вот здесь, игроку дается + 1 очко в такую переменную.

А теперь как сделать, что бы игра показала нужную концовку. Для разных концовок лучше всего создать отдельные лейболы и перед ними написать такой кусок кода.
   
Код
if green == 2: 
                jump good_green
          
   
    elif green != 2:
                jump bad_green

Тут идет проверка, сколько игрок к этому моменту набрал очков. Если он смог набрать достаточно очков для хорошей концовки - программа автоматом перекидывает на кусок текста с хорошей концовкой. Если нет - то в плохую.
bad_green и good_green  это отдельно прописанные лейблы.

Код
label bad_green:

Постаралась как можно подробнее все написать, но если остались вопросы - пиши. )
Художник в душе и в жизни
Дракон в душе и в жизни
Butterfly effect

agrokowka

#1278
Нужна помощь!
Простейший код: есть список названий объектов menu, из них нужно выбрать случайное, и так три раза. Однако внутриигровое меню может встретиться дважды, хотя его название было удалено из списка.

Код
define questions = ["q1", "q2", "q3", "q4"]

init python:
    import random
    def random_question():
        i = random.choice(questions)
        renpy.call(i)
        questions.remove(i)

agnessha

#1279
Всем привет, возник такой вопрос, можно ли сделать так, что бы имя главного персонажа отображалось слева в диалоговом окне, а имена всех других справа?

dmit

#1281
agnessha, для каждого персонажа можно сделать своё положение окна имени, например сдвинуть по горизонтали:
Код
define ep = Character('Эйлин', who_xpos=600)
планета FOREVER!!!      Unkenbro team

lf2mr

#1282
Цитата agnessha ()
Всем привет, возник такой вопрос, можно ли сделать так, что бы имя главного персонажа отображалось слева в диалоговом окне, а имена всех других справа?
Другое решение, отличное от уже предложенного выше.
Код
define mychar = Character("[player_name]", color ="#FA63B1")
Кусок кода из обычного screens.rpy, имена персонажей слева по умолчанию:
Код
if who is not None:

    window:
        id "namebox"
        style "namebox"
        text who id "who"
Заменить на:

Код
if who is not None:

    window:
        id "namebox"
        style "namebox"
        if who != player_name:
            # "500" в строке ниже - это смещение на 500 точек вправо всех имён персонажей, кроме player_name
            xpos gui.name_xpos + 500
        text who id "who"

dmit

#1283
lf2mr, да, рабочий код, но излишний. Для смещения всех имён достаточно задать параметр gui.name_xpos в файле gui, а для одного гг в Character :)
планета FOREVER!!!      Unkenbro team

nikag

#1284
Не запускается Ren'Py и появляется это:
Fri Nov 12 23:21:50 2021
Windows-7-6.1.7601-SP1
Ren'Py 7.4.10.2178

Bootstrap to the start of init.init took 0.24s
Early init took 0.01s
Loader init took 0.07s
Loading error handling took 0.20s
Loading script took 0.92s
Loading save slot metadata. took 0.01s
Loading persistent took 0.00s
Importing _renpysteam: ImportError('No module named _renpysteam',)
Set script version to: None (alternate path)
- Init at launcher/game/web.rpyc:26 took 0.26300 s.
Running init code took 0.80s
Loading analysis data took 0.09s
Analyze and compile ATL took 0.01s
Index archives took 0.00s
Dump and make backups. took 0.00s
Cleaning cache took 0.00s
Making clean stores took 0.00s
Initial gc. took 0.10s
DPI scale factor: 1.000000
nvdrs: Loaded, about to disable thread optimizations.
nvdrs: Disabled thread optimizations.
Creating interface object took 0.56s
Cleaning stores took 0.00s
Init translation took 0.11s
Build styles took 0.00s
Load screen analysis took 0.06s
Analyze screens took 0.00s
Save screen analysis took 0.00s
Prepare screens took 0.20s
Save pyanalysis. took 0.00s
Save bytecode. took 0.00s
Running _start took 0.00s
Performance test:
Interface start took 0.16s

Initializing gl2 renderer:
primary display bounds: (0, 0, 1360, 768)
swap interval: -1 frames
Windowed mode.
Could not get pygame screen: error('Could not create GL context: ',)

Initializing sw renderer:
И еще не работает игра и выдает ошибку.
Сообщение отредактировал nikag - Пятница, 12/Ноя/2021, 22:47

Katruna

#1285
Доброго времени суток.
Появилась у меня тут идея еще немного оживить спрайты героев.. но нужна помощь.. 
Идея такова, я хочу что бы при нажатии на спрайт персонажа проигрывалась анимация. И тут мне не хватает моих знаний/умений. Создавать анимации при наведении на кнопки - я умею. Но вот что бы при клике, да еще и на спрайт, а не на кнопку - идей вообще нет. 
Буду очень признательна, если поможете .з.
Художник в душе и в жизни
Дракон в душе и в жизни
Butterfly effect

Dark_Alex

#1286
Всем привет. Собирал до определенного момента свою игру в формате .АРК файла в ренпай. Сейчас у гугла требования поменялись и нужен формат .ААВ. Вроде бы все должно быть правильно, но сборка завершается с ошибкой ;( В чем проблема, подскажите пожалуйста. А то хотели игру выпустить, а в итоге все летит к чертям. Файл во вложениях.

Katruna

#1287
Цитата Dark_Alex ()
Файл во вложениях
Увы, сайт переживает редизайн и пока никаких приложенных файлов не видно.
Лучше скинь ссылку на файлообменник какой-нибудь или тот же гугл диск.
Художник в душе и в жизни
Дракон в душе и в жизни
Butterfly effect

Хемуль

#1288
Дело, скорее всего, не в редизайне. Файлы (кроме картинок) на сайт могут добавлять только Друзья сайта и выше. У меня вот какой-то файл добавился вполне успешно.
Прикрепления: __-3-.txt (0.0 Kb)
Сообщение отредактировал Хемуль - Вторник, 16/Ноя/2021, 20:56

Dark_Alex

#1289
Цитата Katruna ()
Увы, сайт переживает редизайн и пока никаких приложенных файлов не видно.Лучше скинь ссылку на файлообменник какой-нибудь или тот же гугл диск.
Скидываю (https://docs.google.com/document/d/14ATHeTNvO43cyV1gSpZ-SQGZoFVx9J_d/edit?usp=sharing&ouid=108127088957623446964&rtpof=true&sd=true)

Mawrak

#1290
Добрый день. У меня возникла проблема сделующего содержания: нужно создать bar на экране, который бы показывал переменную, которая может иметь значения от -100 до 100. То есть ноль должен быть в середине bar-а, а полосочка уметь перемещаться в правую или левую сторону.

Возможно ли такое сделать? Пока что получилось сделать только bar, которые отсчитывает направо от 0 до 100, но никак не показывает отрицательные значения.
Форум о визуальных новеллах » Для разработчиков » Ren'Py » Помощь по Ren'Py (Вопрос\Ответ)
Поиск: