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

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

Admin

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

СОНЦЕ

#946
stop_control

Цитата stop_control ()

image logo blurred = im.Blur("logo.png", 1.5)


Код

init python:
    renpy.image('logo blurred', im.Blur('logo.png',1.5))


Цитата stop_control ()
Когда я уменьшаю спрайт и задаю ему движение, он глючит на пиксельном уровне.

можно уточнить природу глюков? может поможет какой-нибудь subpixel True ?

dmit

#947
Сам питон не работает с графикой (так глубоко), но есть модули для этого. Например см.
Уточните что у вас не работает при пользовании функций ренпи?
image logo blurred = im.Blur(im.FactorScale("logo.png", 0.1), 1.5)
image logo blurred = im.Blur(im.FactorScale("logo.png", 0.2), 0.3)
планета FOREVER!!!      Unkenbro team

stop_control

#948
Как разместить
renpy.image('logo blurred', im.Blur('logo.png',1.5))

В цикле


Код
python:
        i=0
        for i in range(50):
                какойто код  выодящий спрайт на экран с разным увеличением.


 subpixel True не помог - или я его как то не так прописал...
глюк....
Когда дерево размером 1700 пикселей уменьшается до 200 то при движение становятся видны то одни то другие писксели
Картинка будто глючит.
Видео надо делать... чтобы показать...

Добавлено (19.12.2020, 21:10)
---------------------------------------------

Цитата dmit ()
Уточните что у вас не работает при пользовании функций ренпи?image logo blurred = im.Blur(im.FactorScale("logo.png", 0.1), 1.5)
Насколько помню эта строка работает.
Только вот выlод картинок у меня идет через Python 
а движение задается через  at_list=


Код
transform panorama_tree(y_delta, koeff, tree_mirror):
        xanchor 0.5
        yanchor 1.0
        xpos tree_x
        ypos y_delta
        zoom koeff/8
        xzoom tree_mirror                          
        subpixel True

        linear 50/koeff xpos 2500
        repeat

Как туда вставить 

image logo blurred = im.Blur(im.FactorScale("logo.png", 0.1), 1.5)

Не представляю...

Добавлено (19.12.2020, 21:39)
---------------------------------------------
Снимаю свой вопрос...
При записи видео выяснилось, что глючит в оконном режиме.
Когда игра идет на полном экране - проблемы нет.

Добавлено (20.12.2020, 12:21)
---------------------------------------------
Здравствуйте - это опять я)

После использования в питоне случайного выбора


Код
python:
        i=0
        for i in range(10):

            import random
            tree_mirror = random.choice([0,1])
           

При попытке сохранения стала выскакивать вот такая вот ошибка:

Код

I'm sorry, but an uncaught exception occurred.

While running game code:
  File "renpy/common/00action_file.rpy", line 372, in __call__
    renpy.save(fn, extra_info=save_name)
Exception: Could not pickle <module 'random' from 'D:\g\Cdrom.7\Игры - софт для изготовления\Визуальные новеллы\Ren'Py\renpy-7.1.0-sdk\lib\pythonlib2.7\random.pyo'>. (perhaps store.random = <module 'random' from 'D:\g\Cdrom.7\Игры - софт для изготовления\Визуальные новеллы\Ren'Py\renpy-7.1.0-sdk\lib\pythonlib2.7\random.pyo'>)

То что нужно выбрать случайно, выбирается как и ожидалось.

Вопрос.
Что не так в коде pythonа?
«Иди пожалуйся своей мамочке»

dmit

#949
stop_control, импортировать не надо в цикле, да и вообще не надо, а использовать ренпи:
tree_mirror = renpy.random.choice([0,1])
Сообщение отредактировал dmit - Воскресенье, 20/Дек/2020, 13:58
планета FOREVER!!!      Unkenbro team

stop_control

#950
Цитата dmit ()
импортировать не надо в цикле, да и вообще не надо, а использовать ренпи
Это был кусочек того, что происходит в цикле.
Весьма небольшой кусочек...
Но он хотя бы понятен.

Но если оставить только его проблема с записью в игре уже возникает.
Удалить и проблема исчезает.

Проблема исчезла после того как я запихнул 
import random
в функцию.

Господи когда же в мой проект придет консультатант по RenPy, который избавит меня от лишних знаний по программированию...
Сообщение отредактировал stop_control - Воскресенье, 20/Дек/2020, 20:10
«Иди пожалуйся своей мамочке»

СОНЦЕ

#952
pirsus

вариантов мильён, но например:

Код
image color:
    choice:
        '#f00'
    choice:
        '#0f0'
    choice:
        '#00f'

label start:
    scene color
    'hello world'

вместо '#f00' и иже с ними -- твои картинки из которых выбирать

pirsus

#953
Наткнулся на очень странную проблему.

В блоке init у меня прописано комлексное изображение.

Код
image batgirl = LiveComposite(
        (625, 850),
        (0, 0), 'images/batgirl/regular/body1.png',
        (0, 0), 'images/batgirl/regular/pants.png',
        (0, 0), 'images/batgirl/regular/jaket.png',
        (0, 0), 'images/batgirl/regular/head1.png')


Но если я затем уже в середине повести вношу изменения в обдном из lable, чтобы сменить голову, то image меняется с самого начала игры, а не с момента, когда по скрипту должны вноситься изменения.


Код
image batgirl = LiveComposite(
        (625, 850),
        (0, 0), 'images/batgirl/regular/body1.png',
        (0, 0), 'images/batgirl/regular/pants.png',
        (0, 0), 'images/batgirl/regular/jaket.png',
        (0, 0), 'images/batgirl/regular/head2.png')

Как мне исправить эту ошибку?

СОНЦЕ

#954
pirsus, я думаю тебе нужен layered image


Код

layeredimage batgirl:
    always:
        'images/batgirl/regular/body1.png'

    group bottom:
        attribute pants default:
            'images/batgirl/regular/pants.png'            

    group top:
        attribute jaket default:
            'images/batgirl/regular/jaket.png'            

    group heads:
        attribute head1 default:
            'images/batgirl/regular/head1.png'
        attribute head2:
            'images/batgirl/regular/head2.png'



тогда первая голова вызывается через
show batgirl

а вторая
show batgirl head2

РТФМ

в любом случае назначать изображение на переменную по хорошему можно только на фазе init только один раз

pirsus

#955
Так у меня получается просто 2 разных изображения с разными названиями и batgirl продолжит выводиться с первой головой.
Т.е. предыдущие label не изменит.

А можно ли объекту image присвоить значение переменной?

Код

  $ batgirlhead1 = LiveComposite(
        (625, 850),
        (0, 0), 'images/batgirl/regular/body1.png',
        (0, 0), 'images/batgirl/regular/trusi.png',
        (0, 0), 'images/batgirl/regular/lifon.png',
        (0, 0), 'images/batgirl/regular/pants.png',
        (0, 0), 'images/batgirl/regular/jaket.png',
        (0, 0), 'images/batgirl/regular/head1.png')

    image batgirl = "batgirlhead1"

Я прописал вот так.  Игра не видит ошибки, но при выведение image batgirl, пишет, что "изображение не найдено"

Добавлено (24.12.2020, 17:30)
---------------------------------------------
Прописал вот так.
Ошибки нет.

image batgirlhead1 = LiveComposite(
        (625, 850),
        (0, 0), 'images/batgirl/regular/body1.png',
        (0, 0), 'images/batgirl/regular/trusi.png',
        (0, 0), 'images/batgirl/regular/lifon.png',
        (0, 0), 'images/batgirl/regular/pants.png',
        (0, 0), 'images/batgirl/regular/jaket.png',
        (0, 0), 'images/batgirl/regular/head1.png')

    image batgirlhead2 = LiveComposite(
        (625, 850),
        (0, 0), 'images/batgirl/regular/body1.png',
        (0, 0), 'images/batgirl/regular/trusi.png',
        (0, 0), 'images/batgirl/regular/lifon.png',
        (0, 0), 'images/batgirl/regular/pants.png',
        (0, 0), 'images/batgirl/regular/jaket.png',
        (0, 0), 'images/batgirl/regular/head2.png')

    image batgirl = "batgirlhead1"

Но опять же, как только в код в середину повести добавляешь
   image batgirl = "batgirlhead2"

Вторая голова начинает выдаваться сразу же с начала игры.

Добавлено (24.12.2020, 17:31)
---------------------------------------------
Не могу понять, почему с изменением имени игрока в процессе игры всё работает корректно, а с ссылкон на изображение - нет

СОНЦЕ

#956
Цитата pirsus ()
Я прописал вот так.  Игра не видит ошибки, но при выведение image batgirl, пишет, что "изображение не найдено"

Вот так будет работать:

Код

init python: #вместо знака доллара
    batgirlhead1 = LiveComposite(
        (625, 850),
        (0, 0), 'images/batgirl/regular/body1.png',
        (0, 0), 'images/batgirl/regular/trusi.png',
        (0, 0), 'images/batgirl/regular/lifon.png',
        (0, 0), 'images/batgirl/regular/pants.png',
        (0, 0), 'images/batgirl/regular/jaket.png',
        (0, 0), 'images/batgirl/regular/head1.png')

    image batgirl = batgirlhead1 #убрать кавычки
Сообщение отредактировал СОНЦЕ - Четверг, 24/Дек/2020, 16:48

pirsus

#957
Заметил странную закономерность:

Если 

image batgirl = "batgirlhead1"

прописать в блоке Init, то голова меняется сразу, не зависимо от места команды
image batgirl = "batgirlhead2"
даже если перед ней прописать if с выполнением условий.

А елси прописать 

image batgirl = "batgirlhead1"

уже в label start, то изменение вообще не происходит.

image batgirl = "batgirlhead2" просто не исполняется, даже когда должна по коду.

Добавлено (24.12.2020, 17:57)
---------------------------------------------
Не работает.



Код
init python:

    batgirlhead1 = LiveComposite(
        (625, 850),
        (0, 0), 'images/batgirl/regular/body1.png',
        (0, 0), 'images/batgirl/regular/trusi.png',
        (0, 0), 'images/batgirl/regular/lifon.png',
        (0, 0), 'images/batgirl/regular/pants.png',
        (0, 0), 'images/batgirl/regular/jaket.png',
        (0, 0), 'images/batgirl/regular/head1.png')

    batgirlhead2 = LiveComposite(
        (625, 850),
        (0, 0), 'images/batgirl/regular/body1.png',
        (0, 0), 'images/batgirl/regular/trusi.png',
        (0, 0), 'images/batgirl/regular/lifon.png',
        (0, 0), 'images/batgirl/regular/pants.png',
        (0, 0), 'images/batgirl/regular/jaket.png',
        (0, 0), 'images/batgirl/regular/head2.png')

    image batgirl = batgirlhead1

Init:
    
    обычные изображения


Код

  I'm sorry, but errors were detected in your script. Please correct the
errors listed below, and try again.

File "game/images.rpy", line 23: expected statement.
    Init:
        ^

File "game/images.rpy", line 21: invalid syntax
    image batgirl = batgirlhead1
                 ^
    

Ren'Py Version: Ren'Py 7.3.5.606
Thu Dec 24 17:55:02 2020

СОНЦЕ

#958
pirsus, я повторюсь, потому что в данном контексте это очень важно
image можно назначать

  • только в блоке init
  • только один раз


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

СОНЦЕ

#959
Цитата pirsus ()
Не работает.
строчка
image batgirl = batgirlhead1
должна стоять вне индентации init python. 4 пробела убери тобишь
Сообщение отредактировал СОНЦЕ - Четверг, 24/Дек/2020, 17:11

pirsus

#960
Теперь он мне совсем чушь выдает

Код
I'm sorry, but errors were detected in your script. Please correct the
errors listed below, and try again.

File "game/images.rpy", line 1: expected statement.
    Init python:
         ^

File "game/images.rpy", line 21: expected statement.
    Init:
        ^

Ren'Py Version: Ren'Py 7.3.5.606
Thu Dec 24 18:47:10 2020


Код

  Init python:

    batgirlhead1 = LiveComposite(
        (625, 850),
        (0, 0), 'images/batgirl/regular/body1.png',
        (0, 0), 'images/batgirl/regular/trusi.png',
        (0, 0), 'images/batgirl/regular/lifon.png',
        (0, 0), 'images/batgirl/regular/pants.png',
        (0, 0), 'images/batgirl/regular/jaket.png',
        (0, 0), 'images/batgirl/regular/head1.png')

    batgirlhead2 = LiveComposite(
        (625, 850),
        (0, 0), 'images/batgirl/regular/body1.png',
        (0, 0), 'images/batgirl/regular/trusi.png',
        (0, 0), 'images/batgirl/regular/lifon.png',
        (0, 0), 'images/batgirl/regular/pants.png',
        (0, 0), 'images/batgirl/regular/jaket.png',
        (0, 0), 'images/batgirl/regular/head2.png')

Init:

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