Пользователи · Поиск по форуму · · Вход в аккаунт · Регистрация |
Форум о визуальных новеллах Для разработчиков Ren'Py Помощь по Ren'Py (Вопрос\Ответ) |
Помощь по Ren'Py (Вопрос\Ответ) |
stop_control#782python: 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#783> Этот код ошибки не вызывает, но и картинки на экран не выводит.
Пути-то, ясно дело, поправить надо. В моём примере картинки лежат в /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#784Спасибо, но я эту запись не понимаю.....
В моем формате меняется картинка и ее параметры увеличение,координаты, направление движения... Это всего лишь часть кода. Представьте - летит птица слева направо - картинка в профиль - размер в зависимости от расстояния до экрана. Потом она повернула на зрителя, картинки меняются до анфаса и размер изменяется в зависимости от расстояния до зрителя. Меня интересует моя форма записи, без страшной строки "python:" show expression img_to_show as count Можно решить проблему в ней? «Иди пожалуйся своей мамочке»
|
AxelK#785В таком случае мне непонятно, почему картинки не должны сменять друг друга, если это анимация.
Как раз и должен быть один тег, чтоб летела одна птица, а не сто. Плюс должна быть пауза, не одновременно же все кадры надо увидеть. > 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#786Летит стая )
Больше 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#787теперь хотя бы задача сформулирована понятно :)
Добавлено (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#788Спасибо всем за ответы.
Последний код выдает ошибку. Я абсолютно ничего не понимаю. Буду искать программиста под проект - если решусь начать его делать, либо потрачу следующий год на изучение Ренпи... Тема закрыта. «Иди пожалуйся своей мамочке»
|
СОНЦЕ#789Я тоже попробую.
Код image bird = Solid('#33f',xysize = (20,20)) transform pos(x,y): pos (x,y) label main_menu: return label start: python: for i in range(100): s = 'bird' + str(i) renpy.show(s,at_list=[pos(i*10,i*10)],what='bird') pause return У меня все работает. Чудесная стая птичек! ![]() Прикрепления:
0530790.jpg
(15.3 Kb)
Сообщение отредактировал СОНЦЕ - Четверг, 16/Июл/2020, 10:28
|
dmit#791для такого количества спрайтов можно использовать SpriteManager
пример- код из документации планета FOREVER!!! Unkenbro team
|
СОНЦЕ#794Зависит от реализации самой галереи, но, например, так: 1. Добавляем пульт выбора страниц галереи Код screen gallery_chooser: hbox: align (.9,.9) #расположение пульта. если хотим его в другом месте поиграть с цеферками в скобках text 'Выберите Страницу!?' textbutton '1' action Show('gallery') textbutton '2' action Show('gallery2') textbutton '3' action Show('gallery3') #итд сколько у Вас должно быть страниц 2. Находим screen gallery (или как у Вас называется галерея) дописываем в неё строчку в конец Код use gallery_chooser 3. Берем весь код скрина gallery и копипастим его. Переименовываем копию например на screen gallery2 Всё, вторая страница готова, остается только наполнить её картинками Пока что не могу это проверить, так что пока только как идея в общих чертах |
| |||