Пользователи · Поиск по форуму · · Вход в аккаунт · Регистрация |
Форум о визуальных новеллах Для разработчиков Ren'Py Помощь по Ren'Py (Вопрос\Ответ) |
Помощь по Ren'Py (Вопрос\Ответ) |
stop_control#931В очередной раз спотыкаюсь на каком то простом вопросе, но потратив 4 часа на поиск решения - пишу сюда.
Код $ example_list = [] $ example_list.append(["Как меня зовут","Ира","Гена","Коля","Степа","Ленорман","1"]) $ example_list.append(["1+3=","1","2","3","4","5","4"]) Массив это какие то вопросы с вариантами ответов и указанием номера правильного. В игре надо пройти анкетирование из какого то количества вопросов например 10. Вывод вопроса и ответов я делаю через "[example_list[0][0]]": Пока стоят циферки все работает отлично. Но чтобы не писать 10 раз один и тот же код я создаю цикл Код while count < len(example_list): "[example_list[count][0]]" $ count += 1 Цикл начинается с нуля и делает число повторов по числу элементов массива. Но переменная вставленная в индекс массива воспринимается не как значение в итоге вместо вопроса выводится строка [example_list[count][0]] Вопрос: Как вставить переменную в индекс многомерного массива, чтобы выводилось значение элемента массива. «Иди пожалуйся своей мамочке»
|
СОНЦЕ#932stop_control,
подойдет ли вариант накрыть питоном всё целиком, чтобы не париться с тонкостями парсера ренпи? Код label start: python: example_list = [] example_list.append(["Как меня зовут","Ира","Гена","Коля","Степа","Ленорман","1"]) example_list.append(["1+3=","1","2","3","4","5","4"]) for element in example_list: renpy.say('',element[0]) return |
stop_control#933С получением элемента списка понял. Спасибо
В моем варианте вопрос выводится, как текст с привязкой к верхней строке экрана, а ответы в форме меню выбора - ниже. Код while count < len(example_list): scene black with dissolve show text "[example_list[0][0]]": #at truecenter xalign 0.1 yalign 0.1 zoom 1.5 with dissolve $ nomer = count+1 menu: "[nomer]/[n_vopros] " "[example_list[0][1]]": $ variant = 1 "[example_list[0][2]]": $ variant = 2 "[example_list[0][3]]": $ variant = 3 "[example_list[0][4]]": $ variant = 4 "[example_list[0][5]]": $ variant = 5 if variant == example_list[0][5]: $ opros -= 1 $ count += 1 Как повторить эту форма вывода в коде питона? Пока поставил костыль - вставка питона в код меню назначает переменным вывода (вопрос и 5 вариантов ответа) значения двумерного массива. Сообщение отредактировал stop_control - Пятница, 18/Дек/2020, 07:13
«Иди пожалуйся своей мамочке»
|
pirsus#934Ребят, тупой вопрос, но никак не могу найти решение:
Надо одновременно выводить несколько спрайтов с наложением друг на друга. Персонаж должен по ходу пьемы менять одежду и прическу . Как это объеднить одной командой? Базовый вид: Код show body1 show head1 show pants1 show jaker1 show persona1 и Renpy выводила указанные выше спрайты? И чтобы на них распространялись общие модификаторы (ar right или with moveinright) По идее хочется написать код вида: Код image persona1 = image ( body1, head1, pants1, jaket1) И чтобы в процессе игры у меня была возможность вносить изменения Код image persona1 = image ( body1, head2, pants1, jaket2) |
stop_control#935Я использовал у себя вот так: Код image furry_sokol_foto = LiveComposite( (1920, 1080), (0, 0), "images/bg/sokolniki_bench.jpg", # (Позиция привязки Х,У), Картинка (900, 470), "images/personage/doris_full_foto.png") # (Позиция привязки Х,У), Картинка Картинка "furry_sokol_foto" - далее воспринимается как обычное изображение. «Иди пожалуйся своей мамочке»
|
stop_control#937Очередной вопрос для тех кто пишет в pytone
В Renpy можно размыть изображение. Код image logo blurred = im.Blur("logo.png", 1.5) Есть ли подобная функция в pytone? Откуда появился этот вопрос? Когда я уменьшаю спрайт и задаю ему движение, он глючит на пиксельном уровне. Проблему можно было бы решить если задать функцию которая при уменьшение в 10 раз размывала бы изображение спрайта на 1.5 пикселя. А при уменьшение в 5 раз - на 0.3 пикселя. «Иди пожалуйся своей мамочке»
|
dmit#939Сам питон не работает с графикой (так глубоко), но есть модули для этого. Например см.
Уточните что у вас не работает при пользовании функций ренпи? 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#940Как разместить
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) Уточните что у вас не работает при пользовании функций ренпи?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]) При попытке сохранения стала выскакивать вот такая вот ошибка: Код 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#941stop_control, импортировать не надо в цикле, да и вообще не надо, а использовать ренпи:
tree_mirror = renpy.random.choice([0,1]) Сообщение отредактировал dmit - Воскресенье, 20/Дек/2020, 13:58
планета FOREVER!!! Unkenbro team
|
stop_control#942Это был кусочек того, что происходит в цикле.
Весьма небольшой кусочек... Но он хотя бы понятен. Но если оставить только его проблема с записью в игре уже возникает. Удалить и проблема исчезает. Проблема исчезла после того как я запихнул import random в функцию. Господи когда же в мой проект придет консультатант по RenPy, который избавит меня от лишних знаний по программированию... Сообщение отредактировал stop_control - Воскресенье, 20/Дек/2020, 20:10
«Иди пожалуйся своей мамочке»
|
pirsus#945Наткнулся на очень странную проблему.
В блоке 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') Как мне исправить эту ошибку? |
| |||