Пользователи · Поиск по форуму · · Вход в аккаунт · Регистрация |
Форум о визуальных новеллах » Для разработчиков » Ren'Py » Помощь по Ren'Py (Вопрос\Ответ) |
Помощь по Ren'Py (Вопрос\Ответ) |
НяШнАя_СмЕрТь#1321Здравствуйте, я начинающий начинающий разработчик игр, очень мало в этом смыслю.
Есть такой вопрос, допустим, я хочу написать на Renpy не совсем новеллу, а какую-нибудь казуалку для андроидов. Как будет реализовываться оптимизация экранов, кнопок и изображений под разные размеры дисплеев и разные диагонали? Собственно, как выбрать оптимальное разрешение для работы, что потом предпринять для улучшения оптимизации, как вообще это происходит. Извините, ничего в этом не смыслю. Проще говоря, вопрос такой, будет ли игра автоматически растягиваться под экран или будет с чёрными полосами, и если будет растягиваться, то не съедут ли кнопки куда-то вбок? |
dmit#1322НяШнАя_СмЕрТь, ренпи растягивает игру, но сохраняя пропорции! если у вас соотношение 16х9 задано , то при просмотре на экранах 16х10, 18х8 будут появляться чёрные полосы (снизу-сверху, справа-слева). Для просмотра в вертикальном исполнении, отдельно придётся разработать интерфейс. Для просмотра на мелких экранах, есть методы изменяющие вид интерфейса для удобства взаимодействия (например убирающие мелкие элементы и увеличивающие текст и оставшиеся кнопки).Короче всё не идеально, но ренпи быстро развивается и в дальнейшем...
Если вспомнить достоинства, то один проект можно портировать не только на андроид, но и веб, айос, вин , лин... И если правильно использовать, то и игра на любых платформах не будет напрягать не совсем чётким следованиям экрана. планета FOREVER!!! Unkenbro team
|
lf2mr#1323Здравствуйте. Прошу помощи.
Есть скрин в меню игры с чекбоксами: Код imagebutton: if my_val: idle "gui/preferences/custom_menu_box_idle.png" hover "gui/preferences/custom_menu_box_hover.png" action SetVariable("my_val",False) else: idle "gui/preferences/custom_menu_box_empty_idle.png" hover "gui/preferences/custom_menu_box_empty_hover.png" action SetVariable("my_val",True) |
Curvas#1324Сердечно приветствую!
Такой вот немного странный вопрос: Хотел сделать изменение цвета персонажа в зависимости от выборов. К примеру, если я подарю девушке цветок, то она станет более теплого цвета, а если носки, то наоборот, более холодного. Пытался сделать значение цвета переменной, но ничего не вышло( Я понимаю, что можно просто прописывать цвет персонажу в каждой его фразе, но сами понимаете как много лишних символов получиться... Может есть какой-то способ изменить "цвет имени персонажа" простым способом? |
dmit#1325заменить какой-либо параметр персонажу легко - $ e = Character(kind=e, what_color = "#f00")
если сначала объявить разные персонажи (по цвету или ещё как), то можно просто их подменять $ e = eice $ e = efire и далее будет другой параметр. планета FOREVER!!! Unkenbro team
|
Curvas#1326заменить какой-либо параметр персонажу легко - $ e = Character(kind=e, what_color = "#f00")если сначала объявить разные персонажи (по цвету или ещё как), то можно просто их подменять $ e = eice $ e = efire и далее будет другой параметр. Спасибо это почти сработало))) 'What_color=' - отвечает за цвет текста, поэтому обычный "Color=" справляется лучше) Теперь смогу реализовать свою задумку |
N1cHoNo#1327Приветствую
Уже который час борюсь вот с такой проблемой I'm sorry, but an uncaught exception occurred. While running game code: File "renpy/common/00keymap.rpy", line 469, in script python hide: File "renpy/common/00keymap.rpy", line 469, in <module> python hide: File "renpy/common/00keymap.rpy", line 488, in _execute_python_hide renpy.save("_reload-1", "reload save game") AttributeError: 'NoneType' object has no attribute 'stores' -- Full Traceback ------------------------------------------------------------ Full traceback: File "renpy/common/00keymap.rpy", line 469, in script python hide: File "renpy/ast.py", line 928, in execute renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store) File "renpy/python.py", line 2245, in py_exec_bytecode exec(bytecode, globals, locals) File "renpy/common/00keymap.rpy", line 469, in <module> python hide: File "renpy/common/00keymap.rpy", line 488, in _execute_python_hide renpy.save("_reload-1", "reload save game") File "renpy/loadsave.py", line 394, in save roots = renpy.game.log.freeze(None) File "renpy/python.py", line 2142, in freeze self.complete(False) File "renpy/python.py", line 1726, in complete self.current.stores[name], self.current.delta_ebc [name]= sd.get_changes(begin) AttributeError: 'NoneType' object has no attribute 'stores' Код скрипта hide mh_smile_st with moveoutleft Hh "-Ну, зато поговорили дольше, чем за все наши диалоги на прошлой неделе вместе взятые" $ renpy.pause(1.0) // в этом месте меня возвращает в главное меню как после Return. Код не читается дальше этого. если я добавлю после Hh еще диалогов до паузы то все что до паузы будет работать и пауза тоже. после нее не работает ничего, ни лейбл ни сцена ни спрайты не показ. просто выкидывает в главное меню// jump stores label stores: scene denkujz-68bbe039-55b3-490b-adbe-c8f47e9f2704 show hh_strog at right: zoom 1.6 play music "audio/System_of_a_Down_-_Lonely_Day_47954602.mp3" return Сообщение отредактировал N1cHoNo - Вторник, 15/Мар/2022, 17:09
|
dmit#1328N1cHoNo,
1) $ renpy.pause(1.0) не проще ли - pause 1.0 2) jump stores label stores: это что скачок на следующую строку? stores - не используйте такое имя оно явно может быть зарезервировано , см. в документации 3)после label : сцена -показ -картинки -включение звука -выход. Что и происходит. Выполняется код (за 3 мили сек) и выход. Поставте хотя бы паузу перед выходом, тогда увидите итог выполнения кода. планета FOREVER!!! Unkenbro team
|
Akinoya#1330Вопрос может быть странный, но надеюсь все же поможет кто-нибудь.
Делаю магазин. И проблема возникла с тем, чтобы при покупке количество товара менялось и в других местах, например, в инвентаре. Магазин у меня на отдельном экране. Если меняю значение какой-либо переменной на этом экране "магазин", то на других значение этой же переменной не меняется. Почему?!( Например, герой покупает книги, в магазине "вы купили еще книгу, у вас 2", в инвентаре по-прежнему "у вас 1 книга", хотя переменная, отвечающая за книги, одна и та же. У меня ощущение, что я неимоверно туплю в простых вещах, но у меня чего-то никак не получается преодолеть эту проблему. Может кто подскажет, что я делаю не так? Ну и еще была бы благодарна, если кто подсказал, возможно уже есть в открытом доступе решение, как сделать магазин) |
dmit#1331Akinoya, вы не привели код как вы меняете переменные в магазине. Могу только предположить, что меняете локальные переменные (в экране будет отображаться правильно), а вам надо глобальные. Проверьте видимость переменных.
планета FOREVER!!! Unkenbro team
|
Akinoya#1332dmit, кода нет, потому что спросить решила внезапно и с работы).
Цитата Могу только предположить, что меняете локальные переменные (в экране будет отображаться правильно), а вам надо глобальные. Спасибо! Но если не то, приду жаловаться с кодом) |
krokot11#1333Сап! Я даже не знаю, с чего начать. У меня довольно стандартный проект, я сильно не ковырял код меню. Хотел сделать так, чтобы нажатие на ПКМ удаляло сохранение, как нажатие на delete.
Прописал в 00keymap.rpy это: # Delete a save. save_delete = [ 'mousedown_3', 'K_DELETE' ], С остальными изменениями управления (rollback / rollforward, dismiss и т.п.) сработало, а тут -- нет. Методом проб и ошибок я выяснил, что при таком коде правая кнопка мыши всё же удаляет сохранения, НО... Только автосохранение, и только если их 6 штук (полная страница). В screens rpy я смог добиться желаемого результата, используя такой код: button: action FileAction(slot) alternate FileDelete(slot) has vbox add FileScreenshot(slot) xalign 0.5 text FileTime(slot, format=_("{#file_time}%A, %d %B %Y, %H:%M"), empty=_("Пустой слот")): style "slot_time_text" text FileSaveName(slot): style "slot_name_text" key "save_delete" action FileDelete(slot) Но меня интересует, почему не получилось решить проблему просто сменой клавиш управления. |
dmit#1334krokot11, не вдаваясь в код, очевидно что при клике пкм происходят события , которые мешают получить функции FileDelete(slot) этот самый slot. А полученный при наведении мыши на слот теряется. Второй вариант - абсолютно правильное решение, единственно не очевидное. Обычно вставляют кнопку удаления [х] в каждый слот сохранения для наглядности.
планета FOREVER!!! Unkenbro team
|
| |||