Пользователи · Поиск по форуму · · Вход в аккаунт · Регистрация |
Форум о визуальных новеллах » Для разработчиков » Ren'Py » Помощь по Ren'Py (Вопрос\Ответ) |
Помощь по Ren'Py (Вопрос\Ответ) |
lexlucky#496Не подскажете как корректно в классе прописать изображение? Типа
Код init python: class My_class: coordx = 0 coordy = 0 my_class_image = "image.png" define my_param1 = My_class( 10, 10, "image1.png") define my_param2 = My_class( 20, 20, "image2.png") define my_param3 = My_class( 30, 30, "image3.png") define my_params = [my_param1, my_param2, my_param3] Нужно передать в функцию список из объектов типа My_class, чтобы функция в цикле перебрала список и нарисовала по нужным координатам эти изображения. Что-то типа такого: Код init python: def my_draw_all(my_params): for i in my_params: show i.my_class_image: xpos = i.coordx ypoz = i.coordy Основная проблема в том что так нельзя прописывать изображения к классе. Как это правильно делать? Как передавать в функцию список в виде параметра? Ещё вопрос - есть функция типа: Код add Solid("#0000ff", xsize=234, ysize=360) Как ей передать первый параметр в виде переменной? И последний вопрос, теоретический. Какой интерпретатор питона встроен в Ren'Py - CPython, PyPy или что-то другое? Что-то нигде не нашёл. Сообщение отредактировал lexlucky - Суббота, 21/Июл/2018, 16:53
|
lexlucky#497 Куда все пропали?
Кстати, с первым вопросом разобрался сам. Собственно в питоне тип переменной динамический, поэтому в классе не важно его указывать(вот теперь не уверен). Нужная переменная автоматически примет тип при присвоении ей значения. Скажем так: Код $ a = Null # сейчас переменная пуста, у неё нет никакого значения $ a = 1 # теперь переменная типа int $ a = "some text here" # теперь переменная стала строкой image a = "image.png" # теперь картинкой То что написано далее мне работать заставить не удалось. Сообщение отредактировал lexlucky - Среда, 25/Июл/2018, 09:09
|
Worgen#498Всем здрасьте, вопрос в следующем, как сделать чтобы кнопка имела другой вид, если она имеет выбор
Т.е. в настройках я выбираю режим экрана полный,и кнопка эта должна подсвечиваться, если она выбрана Код add "gui/overlay/setting_overlay.png" pos -475, -15 imagemap: alpha False auto "gui/config_btns_%s.png" pos 310, 110 hotspot (20, 0, 110, 23): action Preference("display", "any window") hotspot (182, 0, 95, 23): action Preference("display", "fullscreen") hotspot (478, 0, 145, 23): action Preference("transitions", "all") hotspot (677, 0, 154, 25): action Preference("transitions", "none") hotspot (0, 125, 137, 27): action Preference("skip", "seen") hotspot (198, 125, 52, 25): action Preference("skip", "all") hotspot (575, 125, 50, 25): action Preference("after choices", "skip") hotspot (680, 125, 65, 25): action Preference("after choices", "stop") И сразу еще один вопрос, как поднять ползунок? Код xpos 385 ypos 353 maximum (300, 2) thumb "gui/overlay/bar.png" thumb_offset 16 left_bar "gui/overlay/bar_full.png" right_bar "gui/overlay/bar_empty.png" value Preference("text speed") |
Muyet#500Здраствуйте!
Мне опять нужна ваша помошь :-----) Не могу разобратся с горячими точками, как их потавить.. В начале года пыталась разобратся, не получилось, вот теперь снова. Где-то здесь на сайте нашла туториал как это делается, но у меня всё равно error. Сейчас код вот так: Там всего одну горячую точку хочу поставить. Если надо, могу скрины картинок прислать. Помогите пожалуйста новичку, а то я совсем не могу понять что не так :< |
lexlucky#502Два вопроса:
Как у imagebutton работать с параметром selected? Нужно чтобы было видно по кнопке в каком она состоянии. Есть несколько кнопок и включили их или нет нужно отобразить. Вообще этот параметр годится для создания кнопок-переключателей? Как у imagebutton задать параметры xpos и ypos черех переменную? Нужно в цикле раскидать по экрану более полусотни кнопок. Кнопка, её положение и действие описано в классе. (Пытаюсь сделать дерево скиллов) P.S.: Когда пытаюсь у профиля выбрать аватарку выдаёт ошибку: You are trying to do illegal action! Пробовал скачать с компа и сделал ссылку на fastpic оба раза одно и то же. Что я делаю не так? Сообщение отредактировал lexlucky - Четверг, 02/Авг/2018, 20:54
|
dmit#505небольшой пример для Worgen и lexlucky
Код label start: scene black call screen mass_but "Вы создали новую игру Ren'Py." return screen mass_but(): default n = 0 frame: pos (200,100) xysize (600,60) for i in range(9): imagebutton: selected (i==n) xpos i*50 auto "but_%s.png" action SetScreenVariable("n", i) text "[n]" align (0.9, 0.5) textbutton ">" align (1.0, 0.5) action Hide("mass_but") в папке image должны быть файлы: but_hover.png but_idle.png but_selected_hover.png but_selected_idle.png размером 50х50 Сообщение отредактировал dmit - Воскресенье, 05/Авг/2018, 00:20
планета FOREVER!!! Unkenbro team
|
Erckert#506Привет. Не читал всю тему, наверняка уже поднимался вопрос, да и глупый он, но всё же спрошу. Как сделать вывод переменной в интерфейс?
Чтобы на экране всё время где-нибудь в углу висела плашка со значением переменной и обновлялась, когда переменная менялась. Допустим, плашку можно сделать картинкой, а вот как в её координаты вывести текст и обновлять его, я не совсем вдупляю. |
dmit#507Код label start: show screen scr .................................................. screen scr: text (str_peremennaya) на scr экране можете поместить любое оформление - рисунки рамки и т.п. Сообщение отредактировал dmit - Вторник, 07/Авг/2018, 20:07
планета FOREVER!!! Unkenbro team
|
Gremlin12#509Как можно реализовать чтобы читатель мог выбрать прозрачность фона(на котором буквы пишутся) из нескольких вариантов в nvl режиме? В папке gui есть файл nvl.png, может как-то для него задается прозрачность? Просто встречал такое в ренпай новеллах, что в опциях есть возможность это настроить.
|
Ikuku#510Задача сводится к следующему:
1. Создать динамичесое изображение (дисплейабл), который будем использовать вместо статического. 2. Создать набор кнопок, которые управляют его состоянием. 1. Везде, где использовался статический фон (по умолчанию "gui/nvl.png", скорее всего будет в файле screens.rpy), вставляем: DynamicDisplayable(set_nvl_bg). Строчка в итоге будет выглядеть как-то так: background DynamicDisplayable(set_nvl_bg) DynamicDisplayable - это такая штука, которая получает в качестве параметра функцию, а возвращает дисплейабл (картинку) каждые X секунд, и, по умолчанию - с каждым взаимодействием (кликом мыши). Заводим вспомогательную переменную, в которой будет храниться текущее значение прозрачности: Код default nvl_opacity = 1.0 Описываем функцию set_nvl_bg, которая будет управлять прозрачностью: Код init python: def set_nvl_bg(st, at): return Transform("gui/nvl.png", alpha = nvl_opacity), None st, at - обязательные параметры для любой функции-параметра DynamicDisplayable, нам они в нашем случае не нужны, просто упоминаем и забываем. Transform() - функция, которая принимает картинку/дисплейабл, набор параметров, и изменяет ее согласно этим параметрам. Аналогично ATL-языку. Нам нужен параметр alpha, его значение берем из переменной nvl_opacity. None означает, что DynamicDisplayable следует обновлять только по кликам мыши/взаимодействиям, а не раз в N секунд. 2. Создаем набор кнопок, которые будут управлять фоном. Для примера - в отдельном экране, потом этот блок нужно будет перенести в экран Preferences и настроить по вкусу. Три кнопки с экшенами, которые меняют прозрачность до предустановленных значений + шкала, которая позволяет настраивать прозрачность свободно. Код screen nvl_bg_controls(): zorder 1000 vbox: xsize 200 spacing 15 textbutton "100%" action SetVariable("nvl_opacity", 1.0) textbutton "50%" action SetVariable("nvl_opacity", 0.5) textbutton "25%" action SetVariable("nvl_opacity", 0.25) bar value (nvl_opacity * 100) range 100 changed alpha_adjust init python: def alpha_adjust(x): global nvl_opacity nvl_opacity = x / 100.0 renpy.restart_interaction() Код тестового проекта, собранный и готовый к испытаниям (не забудьте поменять статичный фон на DD, п.1): Код define nvltest = Character(None, kind = nvl) screen nvl_bg_controls(): zorder 1000 vbox: xsize 200 spacing 15 textbutton "100%" action SetVariable("nvl_opacity", 1.0) textbutton "50%" action SetVariable("nvl_opacity", 0.5) textbutton "25%" action SetVariable("nvl_opacity", 0.25) bar value (nvl_opacity * 100) range 100 changed alpha_adjust default nvl_opacity = 1.0 init python: def set_nvl_bg(st, at): return Transform("gui/nvl.png", alpha = nvl_opacity), None def alpha_adjust(x): global nvl_opacity # делим на сто, т.к. шкала (bar) работает с величинами от 0 до 100, а значение прозрачности - с 0 до 1.0 nvl_opacity = x / 100.0 # это чтоб фон перерисовывался в реальном времени renpy.restart_interaction() label start: show screen nvl_bg_controls nvltest "test" nvltest "test2" nvltest "test3" |
| |||