Пользователи · Поиск по форуму · · Вход в аккаунт · Регистрация |
Форум о визуальных новеллах » Для разработчиков » Ren'Py » Помощь по Ren'Py (Вопрос\Ответ) |
Помощь по Ren'Py (Вопрос\Ответ) |
stop_control#781Привет
Может кто сталкивался с проблемкой... Мы можем задать картинке псевдоним. Но мне нужно сделать 100 псевдонимов. show КАРТИНКА as ПЕРЕМЕННАЯ Для этого я беру к примеру переменную, увеличиваю ее в цикле на единицу, вывожу картинку... и ничего не происходит. Вместо 100 картинок я получаю 1. Значение переменной не передается в оператор. В итоге выводится 100 раз под псевдонимом ПЕРЕМЕННАЯ Как задать в оператор "show " динамически меняющийся псевдоним? «Иди пожалуйся своей мамочке»
|
Ultra_Scream#783AxelK, пропиши такую строчку
renpy.pause(delay=t, hard=True) где t - время в секундах, в течении которого взаимодействие заблокировано Зродились ми великої години З пожеж війни, із полум'я вогнів Плекав нас біль по втраті України Кормив нас гнів і злість на ворогів |
Ultra_Scream#785AxelK, так, ситуацию понял. Сомневаюсь, что есть отдельная функция или параметр, который позволяет делать это и не загромождая код в целом. Либо просто не знаю. На крайняк могу предложить, чтобы объявить в начале это действие, так хотя бы одним словом можно будет обойтись при использовании по скрипту. Но более ничего не смогу подсказать
Зродились ми великої години З пожеж війни, із полум'я вогнів Плекав нас біль по втраті України Кормив нас гнів і злість на ворогів |
stop_control#789python: for i in range(100): renpy.show ('', what=Image('images/cg/%d.png' % i), tag = 'img%d' % i) renpy.pause() Этот код ошибки не вызывает, но и картинки на экран не выводит. У меня вывод картинки на экран выглядит вот так. ... show expression img_to_show as count xanchor 0.5 yanchor 1.0 xpos 0 ... Очень хочется переменную "count" использовать в имени псевдонима. Хочу отметить что вывод одного изображения - без проблем. Следующее получает то же имя псевдонима и затирает предыдущее. Проблема не в выводе, а в псевдониме. Сообщение отредактировал stop_control - Четверг, 16/Июл/2020, 00:08
«Иди пожалуйся своей мамочке»
|
AxelK#790> Этот код ошибки не вызывает, но и картинки на экран не выводит.
Пути-то, ясно дело, поправить надо. В моём примере картинки лежат в /images/cg/ с именами 0.png, 1.png, ... > Проблема не в выводе, а в псевдониме если выводить с указанием tag, ничто не затирается. в примере выше покажется 100 картинок с разными незатирающимися тегами img0, img1, ... с помощью тегов их также можно например выборочно убирать с экрана renpy.hide ('img1') если и позицию им менять в зависимости от переменной, то они еще и в разных местах будут renpy.show( ... , at = [какой_нибудь_transform (i)], ...) Код transform test (z): xanchor 0.5 yanchor 1.0 xpos z * 4 ypos z * 2 label start: python: for i in range(10): renpy.show ('', at=[test(i)], what=Image('images/%d.png' % i), tag = 'img%d' % i) |
stop_control#791Спасибо, но я эту запись не понимаю.....
В моем формате меняется картинка и ее параметры увеличение,координаты, направление движения... Это всего лишь часть кода. Представьте - летит птица слева направо - картинка в профиль - размер в зависимости от расстояния до экрана. Потом она повернула на зрителя, картинки меняются до анфаса и размер изменяется в зависимости от расстояния до зрителя. Меня интересует моя форма записи, без страшной строки "python:" show expression img_to_show as count Можно решить проблему в ней? «Иди пожалуйся своей мамочке»
|
AxelK#792В таком случае мне непонятно, почему картинки не должны сменять друг друга, если это анимация.
Как раз и должен быть один тег, чтоб летела одна птица, а не сто. Плюс должна быть пауза, не одновременно же все кадры надо увидеть. > show expression img_to_show as count label start: $ count = 0 while count < 100: $ count += 1 show expression "кадр_%d"%count as bird pause 0.01 кадры должны называться: "кадр_1", "кадр_2" и так далее до "кадр_100" но Для анимации лучше бы объявить заранее анимированную картинку со всеми кадрами и показывать ее в нужный момент. Image bird: 'frame1' pause 0.01 'frame2' pause 0.01 'frame3' pause 0.01 #... еще стопятьсот кадров или трансформаций # проблема в том, что нельзя задать сто картинок в цикле loop label start: show bird # дальше можно хоть ждать, хоть показывать диалоги, а птица себе пусть летает. |
stop_control#793Летит стая )
Больше 10 птиц но меньше 100 100 условное максимальное значение. У меня ноут заметно тормозит на 40 движущихся объектах. label start: $ count = 0 while count < 100: $ count += 1 show expression "кадр_%d"%count as bird pause 0.01 Тут логическая ошибка. Картинки загружаются разные - да. Но для ренпи каждая картинка имеет имя псевдонима Выходит вот такая последовательность: show bird show bird show bird А поскольку имена одинаковые, вывод следующей картинки удаляет предыдущую. Вопрос остается - как менять имя псевдонима? Для анимации лучше бы объявить заранее анимированную картинку со всеми кадрами и показывать ее в нужный момент. 2. Если просто учитывать фазы направления это 12 картинок, каждая с поворотом через 30 градусов. Если использовать виды сверху и снизу - уже 36. Если на каждую картинку использовать анимацию из 6 кадров, уже 216 картинок png. Громоздко выходит. Скорость движения каждой птицы увы тоже планируется изменяемая во времени. Движение сейчас упрощенно реализовано через оператор linear. «Иди пожалуйся своей мамочке»
|
AxelK#794теперь хотя бы задача сформулирована понятно :)
Добавлено (16.07.2020, 10:51) Код transform bird_pos (x): xpos x*100 ypos 100 + (x % 2) * 100 label start: $ bird_total = 10 $ frame_count = 5 $ current_frame = 0 while current_frame < frame_count: $ current_frame += 1 $ current_bird = 0 while current_bird < bird_total: $ current_bird += 1 $ renpy.show ('', at_list=[bird_pos(current_bird)], what=Image("f_%d.png" % current_frame), tag="bird_%d" % current_bird, zorder = current_bird) pause 0.03 |
stop_control#795Спасибо всем за ответы.
Последний код выдает ошибку. Я абсолютно ничего не понимаю. Буду искать программиста под проект - если решусь начать его делать, либо потрачу следующий год на изучение Ренпи... Тема закрыта. «Иди пожалуйся своей мамочке»
|
| |||