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

Ternox
Дата: Вторник, 30.09.2014, 21:50 | Сообщение # 1
Администратор
Сообщений: 628
Награды: 49
Сюда пользователи сайта могут писать вопросы о тех или иных функциях движка Ren'Py, а мы попытаемся на них ответить:)


Прежде чем писать мне в ЛС, загляните в FAQ, возможно там уже есть ответ на ваш вопрос.


Джейсон
Дата: Суббота, 08.07.2017, 16:38 | Сообщение # 376
Проверенный
Сообщений: 18
Награды: 0
dmit, спасибо уже сам нашел, даже псевдорандом, вот теперь осталось окно подтверждения запилить.

С радостью приму любую помощь и в долгу не останусь(-^_^-)
https://vk.com/sredioblom

Джейсон
Дата: Воскресенье, 09.07.2017, 14:29 | Сообщение # 377
Проверенный
Сообщений: 18
Награды: 0
Пытался запилить окно yes no, но ничего не получилось. Хотел дать игроку возможность передумать, но думаю надо делать через старое доброе меню.

С радостью приму любую помощь и в долгу не останусь(-^_^-)
https://vk.com/sredioblom


Сообщение отредактировал Джейсон - Воскресенье, 09.07.2017, 16:19

dmit
Дата: Воскресенье, 09.07.2017, 20:17 | Сообщение # 378
Проверенный
Сообщений: 181
Награды: 1
Код
$ layout.yesno_screen("Вы уверены?", yes=ui.jumps("es"), no=ui.jumps("no"))
    " "
label no:    
    e "no"
    return
    
label es:    
    e "es"
    return


планета FOREVER!!!      Unkenbro team

Dgirael
Дата: Среда, 12.07.2017, 00:31 | Сообщение # 379
Пользователь
Сообщений: 4
Награды: 1
Сап. У меня два вопроса:
1 можно ли меню сюжетного выбора сделать с помощью image map?
2. можно ли, и если да, то как сделать dressup игру внутри (не нужно, чтобы в итоге игра запомнила результат, важен сам процесс - интерактивные элементы, которые можно брать и перетаскивать на персонажа)

dmit
Дата: Среда, 12.07.2017, 19:30 | Сообщение # 380
Проверенный
Сообщений: 181
Награды: 1
1 Конечно можно, думаю и сам разберёшься
2 Можно и это, но сложнее. Посмотри http://ru.renpypedia.shoutwiki.com/wiki/Перетаcкивание_(Drag_and_Drop)


планета FOREVER!!!      Unkenbro team

Сообщение отредактировал dmit - Среда, 12.07.2017, 19:32

Brenor
Дата: Суббота, 22.07.2017, 19:37 | Сообщение # 381
Пользователь
Сообщений: 1
Награды: 0
Есть такой вопрос. В файле 00gui я отредактировал реплики message (добавил пару переносов \n во фразы), но на игру это никак не повлияло. Скажите, что нужно сделать, чтобы изменения вступили в силу?

dmit
Дата: Суббота, 22.07.2017, 21:10 | Сообщение # 382
Проверенный
Сообщений: 181
Награды: 1
Я бы не стал трогать файлы движка, а просто в игре добавил к примеру:
Код
init -1 python hide:
    config.translations[u"Are you sure you want to quit?"] = u"Are \nyou sure \nyou want to quit?"


планета FOREVER!!!      Unkenbro team

Orinoku
Дата: Суббота, 29.07.2017, 17:30 | Сообщение # 383
Проверенный
Сообщений: 10
Награды: 3
Здравствуйте.
Стучусь с совершенно абсурдной проблемой: после build distributions и последующей распаковки архива - игра не запускается. Вот вообще. Путь к ней англоязычный, уже сохраняла несколько раз и все бестолку. Даже пыталась на другом компе.
Главное, что никаких ошибок мне не выбивает, то есть, просто крутится колесико загрузки рядом с мышью, когда клацаешь по иконке и все. И все раннее сохраненные новеллы запускаются без проблем, а эта - нет. В самой программе все работает хорошо.
С чем это может быть связано, как исправить?

Надеюсь, проблема адекватно обозначена, просто я сама не могу оправиться от того, с чем столкнулась, так что могут быть неясности в изложении ^^"

dmit
Дата: Суббота, 29.07.2017, 19:10 | Сообщение # 384
Проверенный
Сообщений: 181
Награды: 1
Посмотрите параметры build в файле options.
Не использует ли игра какие-либо не традиционные файлы и места их нахождения?
Обновлён ли renpy?


планета FOREVER!!!      Unkenbro team

Orinoku
Дата: Суббота, 29.07.2017, 20:49 | Сообщение # 385
Проверенный
Сообщений: 10
Награды: 3
Цитата dmit ()
Посмотрите параметры build в файле options.
Не использует ли игра какие-либо не традиционные файлы и места их нахождения?
Обновлён ли renpy?

С параметрами все в норме, а вот обновление упустила ^^"

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

Ludius
Дата: Пятница, 04.08.2017, 06:34 | Сообщение # 386
Пользователь
Сообщений: 2
Награды: 0
Можно ли как-нибудь screen navigation поделить на два независимых меню: главное и меню паузы?

mrWebster
Дата: Пятница, 04.08.2017, 13:15 | Сообщение # 387
Друг сайта
Сообщений: 209
Награды: 1
Ludius, да. Лично я вообще выпилил из главного меню "навигацию". Если не хочешь выпиливать, то приглядись, там где-то проверка на условие была, которая решает, на паузе игра или в главном меню. От нее пляши в нужную сторону :)

Добро пожаловать во Мрак!

Ludius
Дата: Пятница, 04.08.2017, 22:33 | Сообщение # 388
Пользователь
Сообщений: 2
Награды: 0
Ясно, спасибо за ответ.

mrWebster
Дата: Суббота, 05.08.2017, 14:36 | Сообщение # 389
Друг сайта
Сообщений: 209
Награды: 1
Доброго времени суток.
Не совсем разобрался в документации с этой темой. Вообще очень интересует, как можно работать с цветами отдельных изображений. Можно ли перекрасить только фон на программном уровне? А отдельный спрайт или спрайты?


Добро пожаловать во Мрак!

Ikuku
Дата: Суббота, 05.08.2017, 16:50 | Сообщение # 390
Разработчик
Сообщений: 66
Награды: 3
Если коротко, то да: любое отдельное изображение можно перекрасить с помощью im.MatrixColor (но только целиком).

Работает он примерно следующим образом: берет каждый пиксель изображения, и вместо текущего цвета/прозрачности ставит новый, в соответствии со вторым полученным параметром (matrix). Второй параметр может быть либо матрицей/кортежем (это для тех, кому не хватает дефолтных возможностей и кто хочет сделать все руками), либо объектом типа im.matrix (собственно, набор готовых "матриц", каждая из которых заранее сконструирована, чтобы десатурировать, менять цвет, и т.д.)

Если у нас второй параметр - матрица (физически записанная, как список из 20-25 чисел), то измененные цвета каждого пикселя считаются по формуле из документации (переменные от a до t берутся из списка, R, G, B и A - из параметров пикселей оригинальной картинки). Если второй параметр - один из готовых матричных объектов, то о формулах волноваться не надо.

Матричные объекты можно перемножать. Пример из документации: im.matrix.desaturate() * im.matrix.tint(0.9, 0.9, 1.0) читается как "сначала обесцветь, потом покрась (синим, т.к. в tint передан кортеж, обозначающий оттенок синего)"

Список встроенных матричных объектов (МО) (вкратце, из документации):

im.matrix.brightness(b) - МО для изменения яркости. Параметр b принимает значения от -1 до 1, чем меньше, тем темнее.

im.matrix.colorize(black_color, white_color) - МО для покраски "темных" и "светлых" пикселей. "Темные" красятся цветом black_color, светлые, соответственно, white_color. NB: не чисто черные и белые, а именно темные и светлые.

im.matrix.contrast© - МО для изменения контраста. Параметр c должен быть больше нуля, от 0 до 1.0 - понижение контраста картинки, больше 1.0 - увеличение.

im.matrix.desaturate() - МО для обесцвечивания. Краткая запись для im.matrix.saturation(0).

im.matrix.hue(h) - МО для изменения цветности. H - градус смещения цвета по цветовому кругу (круг). Т.е. если изначально цвет пикселя был желтый, и h = 45, то новый цвет станет темно-оранжевым.

im.matrix.identity() - МО для того, чтобы ничего с картинкой не делать. ¯\_(ツ)_/¯

im.matrix.invert() - МО для инвертирования цветовых каналов. "Негатив".

im.matrix.opacity(o) - МО для изменения альфа-канала (прозрачности). Параметр o принимает значения от 0 до 1.0, чем меньше, тем картинка прозрачнее.

im.matrix.saturation(level, desat = (0.2126, 0.7152, 0.0722)) - МО для изменения насыщенности. Параметр level (от 0 (черно-белый) до 1.0 (без изменений)) отвечает за цветность, параметр desat (в скобках приведены дефолтные значения) дополнительно корректирует RGB-уровни картинки для обесцвеченного изображения.

im.matrix.tint(r, g, b) - МО для изменения значений цветовых каналов. Параметры принимают значения от 0 до 1.0, измененный цвет считается в виде доли от оригинала. Т.е., скажем, если значение красного было 70 (из 255 возможных), а в r мы передали .1, новый красный будет равен 7.

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

Код
image bg test = "image.jpg"
image bg test0 = im.MatrixColor("image.jpg", [.5, .5, .5, .5, 0, .2, .2, .2, .2, 0, .3, .3, .3, .3, 0, .1, .1, .1, .1, 0])
image bg test1 = im.MatrixColor("image.jpg", im.matrix.colorize((255, 0, 0), "#00f"))
image bg test2 = im.MatrixColor("image.jpg", im.matrix.hue(45))
image bg test31 = im.MatrixColor("image.jpg", im.matrix.saturation(.5))
image bg test32 = im.MatrixColor("image.jpg", im.matrix.saturation(.5, desat=(0.1, 0.1, 0.722)))
image bg test4 = im.MatrixColor("image.jpg", im.matrix.tint(0.4, 0.4, 1.0))
    
label start:
    show bg test
    "Оригинальное изображение."
    
    show bg test0
    "Случайное изменение цветов с помощью матрицы в параметрах. \n\n \[.5, .5, .5, .5, 0,\n.2, .2, .2, .2, 0,\n.3, .3, .3, .3, 0,\n.1, .1, .1, .1, 0\]"
    
    show bg test1
    "Светлые цвета будут синими, темные - красными. Синий передан строкой (hex-код цвета), красный - кортежем. \n\n im.matrix.colorize((255,0,0), \"#00f\")"
    
    show bg test2
    "Цветность. Поворот цветового круга - 45 градусов. \n\n im.matrix.hue(45)"
    
    show bg test31
    "Обесцвечивание, desat задан по умолчанию. \n\n im.matrix.saturation(.5)"
        
    show bg test32
    "Обесцвечивание, desat задан вручную, со смещением в синюю сторону. \n\n im.matrix.saturation(.5, desat=(0.1, 0.1, 0.7))"
    
    show bg test4
    "Изменение оттенка: красный и зеленый каналы - в .4 от оригинального, синий - без изменений. \n\n im.matrix.tint(0.4, 0.4, 1.0)"


Плюс, изображение, которое возвращает im.MatrixColor(...), можно использовать как любую другую displayable, например, в операторе add в кастомном экране: add im.MatrixColor("image.jpg", im.matrix.hue(45))

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