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

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


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


AxelK
Дата: Вторник, 18.02.2020, 16:36 | Сообщение # 691
Пользователь
Сообщений: 20
Награды: 0
СОНЦЕ, кажися починил. Не знаю, в чём проблема, но это явно что-то при сериализации cpickle

Код

  class MyBlit(renpy.Displayable):

        def __init__(self, child, colors, **kwargs):
            super(MyBlit, self).__init__(**kwargs)
            [b][color=#ff0000]self.child = renpy.displayable(child)[/color][/b]   # вместо  self.child_surf = renpy.load_surface(child)
            self.colors = colors
            self.width = 0
            self.height = 0
        
        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()
            [b][color=#ff0000]surf = renpy.load_surface(self.child)[/color] [/b] # вместо   surf = self.child_surf

            surf.lock()
            for i in range(int(self.width)):
                for j in range(int(self.height)):
                    pix = surf.get_at((i, j))
                    for cf, ct in self.colors:
                        if pix == cf:
                            surf.set_at((i, j), ct)
            surf.unlock()
            pix = None
            render = renpy.Render(self.width, self.height)
            render.blit(surf, (0, 0))
                 
            return render


Теперь отображает, красит, сохраняет и загружает (пока что) без ошибок

Promenadlimpan
Дата: Суббота, 29.02.2020, 22:19 | Сообщение # 692
Пользователь
Сообщений: 5
Награды: 0
Всем привет, не могу понять, как индифицировать класс. К примеру
Код
python:
    class P (Object):
        def __init__(self, name, age, opinion):
            self.Age = age
            self.Opinion = op
            self.name = ""
h = P ("Иван", 12, 1)

label start:
    h "Что-либо"

в таком случае происходит ошибка
Exception: Sayer 'H' is not defined.

Если использовать define
Код
python:
    class P (Object):
        def __init__(self, name, age, opinion):
            self.Age = age
            self.Opinion = op
            self.name = ""

define h = P("Иван", 12, 1)
label start:
    h "Что-либо"
То тоже ошибка

Код
I'm sorry, but an uncaught exception occurred.
While running game code:
  File "game/script.rpy", line 13, in script
.
  File "game/script.rpy", line 13, in <module>

NameError: name 'P' is not defined
-- Full Traceback ------------------------------------------------------------
Full traceback:
  File "game/script.rpy", line 13, in script
    # Определение персонажей игры.
  File "C:\Games\renpy-7.3.5-sdk\renpy\ast.py", line 2110, in execute
    value = renpy.python.py_eval_bytecode(self.code.bytecode)
  File "C:\Games\renpy-7.3.5-sdk\renpy\python.py", line 2052, in py_eval_bytecode
    return eval(bytecode, globals, locals)
  File "game/script.rpy", line 13, in <module>
    # Определение персонажей игры.
NameError: name 'P' is not defined
Windows-8-6.2.9200
Ren'Py 7.3.5.606
Classes 1.0
Sat Feb 29 22:17:06 2020

Подскажите как решить проблему

СОНЦЕ
Дата: Суббота, 29.02.2020, 23:51 | Сообщение # 693
Разработчик
Сообщений: 146
Награды: 25
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

Promenadlimpan
Дата: Воскресенье, 01.03.2020, 08:22 | Сообщение # 694
Пользователь
Сообщений: 5
Награды: 0
СОНЦЕ,
Спасибо за ответ!
А можно сделать так?

Код
init python:
Просто сейчас будет ошибка, возможно ли как-то исправить?

Promenadlimpan
Дата: Воскресенье, 01.03.2020, 09:23 | Сообщение # 695
Пользователь
Сообщений: 5
Награды: 0
СОНЦЕ,
Спасибо за ответ!
А можно сделать так?

Код
init python:
Просто сейчас будет ошибка, возможно ли как-то исправить?

СОНЦЕ
Дата: Воскресенье, 01.03.2020, 15:37 | Сообщение # 696
Разработчик
Сообщений: 146
Награды: 25
Promenadlimpan,

Код

init python:
    pass


прошу уточнить вопрос. лучше - напишите что Вам нужно и как Вы пытаетесь этого добиться.

Promenadlimpan
Дата: Воскресенье, 01.03.2020, 18:41 | Сообщение # 697
Пользователь
Сообщений: 5
Награды: 0
СОНЦЕ, Извините, код не вставился полностью 
Вот что я хочу сделать. Новый класс, с помощью которого можно будет использовать все функции character. Но сейчас будет ошибка
Name p is not definded. Как это решить?

Promenadlimpan
Дата: Воскресенье, 01.03.2020, 18:44 | Сообщение # 698
Пользователь
Сообщений: 5
Награды: 0
init python:
class P:
def __init__(self, name, age, opinion):
self.Age = age
self.Opinion = opinion
self.name = name

Define p = P("Иван", 12, 1)

label main_menu:
return

label start:
p "Что-либо"


return

Diazzz16
Дата: Воскресенье, 01.03.2020, 19:35 | Сообщение # 699
Проверенный
Сообщений: 12
Награды: 0
Здрасте, возможно ли чтоб - при смене персонажа менялся худ?

Пишу новеллу, прошу не бить.
Ссылки:
Ютаб: https://youtube.com/channel/UCWuXnF6vU4ags5gX-h3TD2A
Втентакле: https://vk.com/Diazzz16

СОНЦЕ
Дата: Воскресенье, 01.03.2020, 20:56 | Сообщение # 700
Разработчик
Сообщений: 146
Награды: 25
Цитата 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.03.2020, 02:10

Diazzz16
Дата: Понедельник, 02.03.2020, 17:59 | Сообщение # 701
Проверенный
Сообщений: 12
Награды: 0
СОНЦЕ, спасибо!

Пишу новеллу, прошу не бить.
Ссылки:
Ютаб: https://youtube.com/channel/UCWuXnF6vU4ags5gX-h3TD2A
Втентакле: https://vk.com/Diazzz16

AxelK
Дата: Четверг, 05.03.2020, 14:08 | Сообщение # 702
Пользователь
Сообщений: 20
Награды: 0
А можно ли создать билд игры, чтоб без вот этого всего в папках lib и renpy?
Игра 10 файлов и библиотека на 1000. Как-то неприятно.
Собрать в renpy.zip пробовал, что-то не вышло...
Как это правильно делается?

Rojikku
Дата: Среда, 11.03.2020, 21:35 | Сообщение # 703
Пользователь
Сообщений: 1
Награды: 0
Доброго времени суток! Подскажите, пожалуйста, можно ли поменять экран загрузки на андроид ?(тот который при включении новелл "Ren'py loading..."

Die for Metal

dmit
Дата: Среда, 11.03.2020, 22:48 | Сообщение # 704
Проверенный
Сообщений: 177
Награды: 1
Rojikku, это есть в документации или тут по-русски посмотри http://ru.renpypedia.shoutwiki.com/wiki/Андроид_(Android)

планета FOREVER!!!

Сообщение отредактировал dmit - Среда, 11.03.2020, 22:50

Lonewhale
Дата: Воскресенье, 15.03.2020, 20:58 | Сообщение # 705
Пользователь
Сообщений: 5
Награды: 0
Здрасте. Нужна помощь, я очень устал бодаться с проблемой :(
Краткая версия
Мне нужно отображать последний текст наратора в собственном экране, пока говорят персонажи. Но если использую какие либо условия в коде, то на мой драгоценный экран, из скрипта, попадает только последняя строчка наратора.

 Вот пример кода

Код
init python:    class My_gui():
        def __init__(self):            
            self.previous_who = None
            self.action_say = ""
            self.action_show = False
            
    my_gui = My_gui()

    
    def My_fraud(who_origin, what_origin):
        global my_gui

        if (who_origin is None) and (my_gui.previous_who is not None):
            my_gui.action_show = False
            my_gui.action_say = what_origin
        else:
            my_gui.action_show = True

        my_gui.previous_who = who_origin
        return (who_origin, what_origin)

screen say(who, what):
    style_prefix "say"

    window:
        id "window"
        $ who, what = My_fraud(who, what)

        if who is not None:

            window:
                id "namebox"
                style "namebox"
                text who id "who"

        text what id "what"

screen fake_action:
    window:
        background "#0F07"
        pos (20, 20)
        xysize (300, 100)
        text my_gui.action_say at topleft

label start:
    "These words should be on screen fake_action in the next frame."
    e "The window should appear the words of the narrator from the last frame"
    "But these appear"
Форум о визуальных новеллах » Для разработчиков » Ren'Py » Помощь по Rep'Py (Вопрос\Ответ)
Поиск: