Форум Anivisual закрыт. Вы не можете создавать новые темы или писать ответы. Форум будет работать в режиме архива.
Пользователи · Поиск по форуму · · · Регистрация

Результаты поиска

СОНЦЕ

#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()

похоже эта строчка не подтягивает пиксели из скормленной рендеру картинки, а лишь дает пространство для квадратика. Почему? пока не знаю smile_82
Сообщение отредактировал СОНЦЕ - Среда, 05/Фев/2020, 23:45

СОНЦЕ

#139 | Тема: Неосилятор вещает!
Не могу не отметить, но чтобы хотелось написать полноценное ревью на то, что хочется дропнуть, это должно быть какое-то хитрое переплетение граней очень богатого темперамента. smile_86

СОНЦЕ

#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
Прикрепления: 2458931.png (6.6 Kb)

СОНЦЕ

#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) smile_28 

Код скопировался с ошибками и сходу не запускается.
Но гуголь предположил что речь идет Вот про этот кусок кода
И в нем (не у Вас) есть такой фрагмент

Код


    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


и никакого увеличения больше не происходит
Поиск: