Результаты поиска
|
|
#136 | Тема: Помощь по Ren'Py (Вопрос\Ответ)
Цитата KripWorland (  ) Всем доброго времени суток. Помогите пожалуйста решить такую задачку:в ренпи есть весьма удобная штука - экран уведомлений, вызываемый функцией renpy.notify() проблема в том, что при повторном вызове функции предыдущее уведомление скрывается.
Вот и хотелось бы сделать функцию, которая бы помещала уведомления в некую очередь и показывала их последовательно. Т.е. если в данный момент нет экрана notify, то сразу выводим его, если же такой экран есть, ставим уведомление в очередь и показываем только тогда, когда предыдущее уведомление будет скрыто.
Код init python: _notify_list = [] def notify_queue(): global _notify_list if all((not renpy.get_screen('notify'), _notify_list)): renpy.notify(_notify_list.pop(0));
screen notify_check(): timer .5 repeat True action Function(notify_queue)
label main_menu: return label start: show screen notify_check 'foo' python: for i in range(50): _notify_list.append(str(i)) 'bar' return
мой вариант; косее некуда, но, думаю, можно вычленить функцианал и сделать по-нормальному
Цитата AxelK (  ) как взять пиксели с самой картинки? Что-то не то я делаю, по всей видимости. а можно рабочий пример без троеточий? тогда возможно быстрее разберусь
|
#137 | Тема: Новеллы каких жанров вам нравятся?
А вообще жанр не особо важен, в любом жанре и сеттинге бывает шедевр, а бывает и ерунда... главное чтобы был хентай! Ящитаю, что новеллы без хентая -- неискренни, не каноничны, и вообще какое тогда поощрение от читалова этих простыней текста? XD Разве что если это какой нибудь ядреный трешак - там хотя бы мозги хентаят ^^
|
#138 | Тема: Помощь по Ren'Py (Вопрос\Ответ)
AxelK,
Код init python: import pygame_sdl2 as pygame import threading
class MyBlit(renpy.Displayable):
def __init__(self, child,cf,ct, **kwargs): super(MyBlit, self).__init__(**kwargs) self.child = child self.child_surf = renpy.load_surface(child) self.cf = cf self.ct = ct def render(self, width, height, st, at): displayable_child = renpy.displayable(self.child) child_render = renpy.render(displayable_child, width, height, st, at) self.width, self.height = child_render.get_size() c = self.child_surf
rx, ry = self.width, self.height c.lock() for i in range(int(rx)): for j in range(int(ry)): pix = self.child_surf.get_at((i, j)) if pix == self.cf: self.child_surf.set_at((i, j), self.ct) c.unlock() render = renpy.Render(self.width, self.height) render.blit(c, (0, 0)) return render label main_menu: return label start: label test_blit: python: renpy.scene() test_image = MyBlit('test.png',(0,0,255,255),(255,0,0,255)) renpy.show('_', at_list=[truecenter], layer='master', what=test_image, zorder=1, tag='bg', behind=[])
' blah blah' return
вот в таком виде пиксели перекрашиваются непосредственно на картинке. если дорисованный квадратик тоже надо перекрасить: это очевидно можно сделать отдельно.
Код c = child_render.canvas().get_surface()
похоже эта строчка не подтягивает пиксели из скормленной рендеру картинки, а лишь дает пространство для квадратика. Почему? пока не знаю 
Сообщение отредактировал СОНЦЕ - Среда, 05/Фев/2020, 23:45
|
#139 | Тема: Неосилятор вещает!
Не могу не отметить, но чтобы хотелось написать полноценное ревью на то, что хочется дропнуть, это должно быть какое-то хитрое переплетение граней очень богатого темперамента. 
|
#140 | Тема: Помощь по Ren'Py (Вопрос\Ответ)
Двачую пост dmit-а. можно вот таким кодом объявить циферки, после чего использовать в скрине напрямую
Код for i in range(10): renpy.image(str(i),Crop((i*16, 0, 16, 16), "digits.png"))
А если удастся запустить это через layeredimage, кинешь в меня исходником плз. Потому что судя по всему на переменные многократно оно реагирует только в команде if. в остальных местах берет значение один раз и навсегда.
Кстати, как вариант - картинку с циферками в ряд можно зарегистрировать как шрифт и дальше толкать как обычный текст - оно будет писать этим шрифтом. примерно так.
Код init python: renpy.register_sfont(u'my_num_font',22,filename='digits.png',charset='0123456789') money = 1234567890
label main_menu: return
label start: scene expression '#aaa' show expression Text(str(money),font='my_num_font',size=22,color='#fff') at truecenter pause
return
а файл sfont шрифта - это буквально символы в ряд. только еще для парсинга ему нужна магентовая точка в левом верхнем углу над каждым символом. вот для примера

Вот тут подробнее про то как самому рисовать и регистрировать для ренпи шрыфты https://www.renpy.org/doc....d-fonts
|
#141 | Тема: Помощь по Ren'Py (Вопрос\Ответ)
Floyd,
Код init python: style.default.justify=True
это по дефолту для всех
Код define e = Character("Eileen",what_justify=True)
это конкретному персонажу или для конкретного случая
крч justify
|
#142 | Тема: Помощь по Ren'Py (Вопрос\Ответ)
AxelK, Нужен более конкретный пример, вызывающий баг, потому что у меня все работает
dmit, немогуне отметить - шрифт атмосферный, нраица ^^
|
#143 | Тема: Помощь по Ren'Py (Вопрос\Ответ)
Promenadlimpan,
Код init python: class P: def __init__(self, name, age, opinion): self.Age = age self.Opinion = opinion self.name = name H = P("Иван", 12, 1)
define h = Character(H.name)
label main_menu: return
label start: h "Что-либо" h 'Минязавут [H.name]' h 'Мой возвраст - [H.Age]' h 'Мой ориентация - [H.Opinion]' return
|
|
#145 | Тема: Помощь по Ren'Py (Вопрос\Ответ)
Цитата Diazzz16 (  ) возможно ли чтоб - при смене персонажа менялся худ? Да, возможно. в обычной ВН Худ - это screen say в screens.rpy предположим информация о выбраном персе находится в переменной char
1) делаем отдельный screen say для каждого перса 2) прописываем мастер screen say
Код screen say(who, what): if char == 'Rash': use say_rash(who,what) elif char == 'Zitz': use say_zitz(who,what) else: use say_pimple(who, what)
Сообщение отредактировал СОНЦЕ - Понедельник, 02/Мар/2020, 01:10
|
#146 | Тема: Локализация Новелл
касательно локализации: одно из ключевых камней перед тем как приступать к собственно переводу убедись что ты 100% точно сможешь извлечь текст из новеллы и засунуть переведенный назад, и оно после этого взлетит. ну или вообще определиться как будет выпускаться перевод и предварительно протестировать данный метод. поскольку обычно нельзя просто так взять и подменить текст в ВН. и надежды на нахождение тыжпрограммистов которые это сделают очень сильно преувеличены. от себя рекомендую выбирать новеллы на движке RenPy потому что их довольно легко хакать и относительно сложно защищать сам перевод - рутинное дело, проблем вызвать не должен
касательно создания - оценка затраченных усилий как правило недооценивается. сильно! буквально в десять раз! советую оценить свои силы на очень ОЧЕНЬ простом проекте перед тем как приступать к чему-то более сложному. и пожалуй перевода это тоже касается: если тащить что-то длинное даже с переводом простого текста можно выгореть и не закончить...
Сообщение отредактировал СОНЦЕ - Понедельник, 02/Мар/2020, 21:34
|
#147 | Тема: Помощь по Ren'Py (Вопрос\Ответ)
KripWorland, думаю нудо будет уточнить к какой конкретно переменной надо обратиться, потому что вот такой лобовой пример работает как ни в чем не бывало
test.py кинутый в папку 'game' ко всему остальному барахлу
Код from renpy import config
def get_screen_height(): return config.screen_height
scripy.rpy
Код init: $import test
default scr_hei = test.get_screen_height()
label main_menu: return
label start: "[config.screen_width] [scr_hei]" return
|
#148 | Тема: Как сделать, чтобы код параллакса не увеличивал спрайт
Кусочек кода ))0)
Код скопировался с ошибками и сходу не запускается. Но гуголь предположил что речь идет Вот про этот кусок кода И в нем (не у Вас) есть такой фрагмент
Код
def trans(d, st, at, xdist=None, ydist=None, disp=None): d.xoffset, d.yoffset = int(round(xdist * disp.xoffset)), int(round(ydist * disp.yoffset)) if xdist != 0 or ydist != 0: xzoom = (config.screen_width + abs(xdist + xdist)) / float(config.screen_width) yzoom = (config.screen_height + abs(ydist + ydist)) / float(config.screen_height) if yzoom > xzoom: d.zoom = yzoom else: d.zoom = xzoom d.anchor = (.5, 1.0) d.align = (.5, 1.0) return 0
в нем нужная нам часть:
Код xzoom = (config.screen_width + abs(xdist + xdist)) / float(config.screen_width) yzoom = (config.screen_height + abs(ydist + ydist)) / float(config.screen_height)
меняется на
Код xzoom = 1.0 yzoom = 1.0
и никакого увеличения больше не происходит
|
|
#150 | Тема: Помощь по Ren'Py (Вопрос\Ответ)
LazyRaven,моя версия - в функции DynamicDisplayable-a заменить возвращаемый displayable на функцию At() c применением нужной transform
|