Весь контент Алекс__
-
Визуальные новеллы своими руками.
Всем доброго времени суток...)) Чтобы как-то оживить тему, хочу поделиться небольшой игрушкой. Правда, это не визуальная новелла, а настольная игра с карточками. Правила не сложные и о них написано в помощи по игре. Играть могут до 5 игроков (можно играть против компьютера). Скачать дистрибутив для Win/Mac/Lin можно здесь - http://www.mediafire...ggmoph19guso25j
-
Визуальные новеллы своими руками.
Могу только добавить к сообщению Элионта - если надо сделать так, что бы нажатие клавиши работало только в определенном месте игры, то необходимо воспользоваться "экранами" screen my_screen: key "K_RETURN" action Play("имя_канала_для_воспроизведения__одно_из_уже_имеющихся_или_специально_созданное", "my_sound.ogg") # обычная клавиша "ввод" key "K_KP_ENTER" action Jump("far_away_label") # клавиша "ввод" на цифровой клавиатуре label start: code code code show screen my_screen # нажатие клавиш "ввод" теперь приведет к дополнительным результатам code code code hide screen my_screen # отключили экран http://www.renpy.org...ml/screens.html http://www.renpy.org...en_actions.html
-
Визуальные новеллы своими руками.
Это зависит от того, что это за сообщение. Если это слова персонажа или автора, то поможет текстовый тэг font "Try out the {font=mikachan.ttf}mikachan font{/font}." http://www.renpy.org...g-and-text-tags Если же это надпись, являющаяся частью экрана, то почитать про Screen Language можно здесь http://www.renpy.org...reens.html#text http://www.renpy.org...tyle-properties screen hello_world: text "Hello, World." font "DejaVuSans.ttf"
-
Визуальные новеллы своими руками.
Изменения внешнего вида игры удобно вносить путем редактирования стилей init python: style.default.font = "mikachan.ttf"(Установит шрифт по умолчанию mikachan.ttf. Файл шрифта должен быть размещен в папке с игрой *имя_проекта*/game - если необходимо разместить его в отдельную подпапку, то при назначении шрифта обязательно должен быть указан путь к нему, например "/my_folder/mikachan.ttf" (папка со шрифтом находится *имя_проекта*/game/my_folder). При создании дистрибутива игры файл шрифта будет включен в него и, соответственно, игра будет правильно отображаться на любом другом компьютере. Кстати, не забываем об авторских правах на шрифты.) http://www.renpy.org...html/style.html
-
Визуальные новеллы своими руками.
Можем...)) http://www.renpy.org...g-and-text-tags Автоматический переход к следующему текстовому окну можно реализовать при помощи текстового тэга "nw". http://www.renpy.org...g-and-text-tags
-
Визуальные новеллы своими руками.
У паузы есть параметр "hard", который не позволяет пропустить ее клик'ом мыши $ renpy.pause (3.0, hard = True)
-
Визуальные новеллы своими руками.
to dalamar1: посмотрите здесь https://www.animeforum.ru/index.php?showtopic=61348&view=findpost&p=2619869
-
Визуальные новеллы своими руками.
Вся беда в использовании DynamicDisplayable - не мучайся с ним, воспользуйся screen'ами screen my_countdown: timer 1 repeat True action If( (my_time > 0 ) , [ SetScreenVariable('my_time', my_time - 1), Play("my_channel", "tick.ogg")], [Hide('my_countdown'), Jump(label_to_jump_to)] ) if my_time > 5: text str(my_time) xpos 20 ypos 20 size 47 elif my_time > 0: text str(my_time) xpos 20 ypos 20 size 47 color "#c00" ################################################### # The game starts here. label start: show screen my_countdown (my_time=10, label_to_jump_to="toolate") "Hurry up!" hide screen my_countdown "Right in time." return label toolate: "It's too late" jump start Этот таймер можно использовать много раз, он не отсчитывает время пока игрок находится в меню, но если его сохранить и загрузиться из сохранения, то отсчет времени начнется с самого начала.
-
Визуальные новеллы своими руками.
to Айон XIV Не все так просто... http://lemmasoft.ren...ountdown#p97448
-
Визуальные новеллы своими руками.
to kurochan: Если вы все еще используете Рен'пи ниже версии 6.11 (т.е. без screen'ов), то изменить положение элементов меню можно с помощью стилей. В файле "options.rpy" есть строки, которые позволяют настроить внешний вид диалогового окна или главного меню - по аналогии можно настраивать стили для других элементов. Для того, чтобы определить какой стиль надо изменить, стоит воспользоваться "инспектором стилей" - запустить игру, навести курсор на нужный нам объект (в вашем случае - это рамка, содержащая все элементы меню настроек) и нажать Shift + i. В появившемся окне будет указано название стиля (в вашем случае - prefs_frame). Теперь можем поместить код, задающий положение по вертикали для "prefs_frame", в любой блок "init" (он может быть в файле "options.rpy" или любом другом). Добавим строки $ style.prefs_frame.ypos = 0.3 # для меню настроек $ style.file_picker_frame.ypos = 0.3 # для меню сохранения / загрузки * Знак $ говорит Рен'пи о том, что далее в этой строке идет код на языке python. Если вы будете размещать код в блоке "init python" (как это сделано в файле "options.rpy"), знаки $ надо убрать, т.к. в таком блоке весь код должен быть на python'e и дополнительные обозначения не нужны.
-
Визуальные новеллы своими руками.
Код для всех меню находится в файле "screens.rpy" - в него можно внести любые необходимые изменения. Код для экрана настроек находится в блоке "screen preferences:", и если необходимо сдвинуть все кнопки вниз, то достаточно указать позицию по вертикали, начиная от которой будут отображаться все эти кнопки screen preferences: tag menu # Include the navigation. use navigation # Put the navigation columns in a three-wide grid. grid 3 1: ypos 50 # <--- Задает отступ 50 пикс. от верхнего края экрана style_group "prefs" xfill True # остальной код без изменений
-
Визуальные новеллы своими руками.
Хм, очень странно... Единственное предложение - попробуйте другую версию Рен'пи (в 6.12 и 6.13 этот код работает нормально)
-
Визуальные новеллы своими руками.
1) К кнопкам управления добавить еще одну textbutton "zoom x2, x3, x4" action SetVariable("bg_zoom", If(bg_zoom == 2.0, 3.0, If (bg_zoom == 3.0, 4.0, 2.0) ) ) # будет поочереди менять значение переменной bg_zoom на 2, 3, 4, 2 2) Показывать различные элементы на экране можно сгруппировав их в "коробки" (vbox и hbox), указав позицию "коробки" на экране, или можно указывать позицию для каждого элемента (в нашем случае это кнопка) отдельно textbutton "X" action None xpos 300 ypos 100 http://www.renpy.org...reens.html#hbox http://www.renpy.org...reens.html#vbox http://www.renpy.org...tyle-properties Кнопки в Рен'пи двух видов textbutton и imagebutton. Первые состоят из текста и рамки, а вот вторые из картинок (нужно указать как минимум две - картинка для обычного состояния кнопки "idle" и состояния, когда мышь наведена на кнопку "hover") imagebutton: xpos 560 ypos 420 idle "button_1.png" hover "button_2.png" action [Hide("binoculars"), Hide("back_view") ] focus_mask True http://www.renpy.org...tml#imagebutton http://www.renpy.org...html#textbutton 3) C imagemap у меня не получилось... и с увеличением тоже... Можно нарисовать сразу большой задний план (больше размеров экрана, чтобы можно было по нему премещать бинокль) и поверх этого заднего плана разместить кнопки, при нажатии на которые будут происходить какие-то действия. Для того, чтобы позиции кнопок совпадали с задним планом, надо нарисовать кнопки такого же размера как и он, только на прозрачном фоне. Тогда можно будет просто показать кнопки поверх заднего плана и не "париться" с их координатами. define e = Character('Eileen', color="#c8ffc8") image bg: # картинка заднего плана со всеми кнопками - ее мы покажем до того как начать смотреть в бинокль contains: "bg.png" # задний план contains: "bg_idle.png" # картинка кнопки, уменьшенная в 2 раза, т.к. оригинальный размер картинки (1800х1200) zoom 0.5 screen binoculars: zorder 70 modal True # делает активным только текущий экран - с остальными взаимодействовать нельзя. Если этот параметр не установить, то при нажатии на кнопку мыши игра будет продолжаться, а мы еще не закончили с биноклем # соберем бинокль и то, что мы рассматриваем в один экран, чтобы можно было взаимодействовать и с тем, и с другим add "bg" xalign bg_xalign yalign bg_yalign zoom 2.0 # рисуем задний план (800 х 600), увеличенный в 2 раза imagebutton: # поместим поверх заднего плана кнопку (размер картинок для кнопки 1600 х 1200, т.е. тоже в 2 раза больше экрана) xalign bg_xalign yalign bg_yalign idle "bg_idle.png" hover "bg_hover.png" action [Hide("binoculars"), Hide("back_view"), Jump ("far_away_label") ] # при нажатии зашлет нас далеко-далеко focus_mask True # только непрозрачная часть кнопки будет активна # картинку бинокля также сделаем в виде кнопки, т.к. она должна частично скрывать задний план и кнопки на нем imagebutton: align (0.5, 0.5) idle "bin.png" hover "bin.png" action Hide ("smth") # кнопка должна что-то делать, иначе она не будет закрывать собой кнопки на заднем плане, и их можно будет нажать "через" картинку бинокля focus_mask True # только непрозрачная часть кнопки будет активна - т.е. мы сможем взаимодействовать с задним планом в том месте, где картинка бинокля прозрачна vbox: xalign 1.0 yalign 0.5 textbutton "up" action SetVariable("bg_yalign", max(-0.2, (bg_yalign-0.1) ) ) hbox: textbutton "left" action SetVariable("bg_xalign", max(-0.2, (bg_xalign-0.1) ) ) null width 20 textbutton "right" action SetVariable("bg_xalign", min( 1.2, (bg_xalign+0.1) ) ) textbutton "down" action SetVariable("bg_yalign", min( 1.2, (bg_yalign+0.1) ) ) textbutton "X" action [Hide("binoculars"), Hide("back_view") ] label far_away_label: scene black "You found yourself somewhere far away..." return # The game starts here. label start: $ bg_xalign = 0.5 $ bg_yalign = 0.5 show bg e "Надо кликнуть в прямоугольник." show screen binoculars $ renpy.pause(0.0001) e "Once you add a story, pictures, and music, you can release it to the world!" "..." return http://www.renpy.org/doc/html/screens.html#screen-statement http://www.renpy.org/doc/html/style.html#button-style-properties http://www.renpy.org/doc/html/atl.html#contains-statement pics.rar
-
Визуальные новеллы своими руками.
Вот - как вариант (правда сохранение работает не верно - при загрузке бинокль окажется в первоначальном положении) define e = Character('Eileen', color="#c8ffc8") image bg: "bg.png" screen binoculars: modal True add "bin.png" alpha 0.7 # параметр alpha надо убрать - сейчас он здесь для того, чтоб было видно как двигается картинка на заднем плане vbox: xalign 1.0 yalign 0.5 textbutton "up" action SetVariable("bg_yalign", max(-0.2, (bg_yalign-0.1) ) ) #максимальные и минимальные значения надо подобрать так, чтобы картинка на заднем фоне не "убегала" за края бинокля hbox: textbutton "left" action SetVariable("bg_xalign", max(-0.2, (bg_xalign-0.1) ) ) null width 20 textbutton "right" action SetVariable("bg_xalign", min( 1.2, (bg_xalign+0.1) ) ) textbutton "down" action SetVariable("bg_yalign", min( 1.2, (bg_yalign+0.1) ) ) textbutton "X" action [Hide("binoculars"), Hide("back_view") ] screen back_view: add "bg" zoom 2.0 xalign bg_xalign yalign bg_yalign # The game starts here. label start: $ bg_xalign = 0.5 $ bg_yalign = 0.5 scene bg e "You've created a new Ren'Py game." show screen back_view show screen binoculars $ renpy.pause(0.001) e "Once you add a story, pictures, and music, you can release it to the world!" "..." return pics.rar
-
Визуальные новеллы своими руками.
to Radogast Хм, сам ни разу не делал видео..., но в первом "здесь" говориться о том, что AVI и OGG - это контейнеры, и будет ли видео воспроизводиться зависит от того, что вы в них "запихали", а во втором "здесь" (чуть подальше http://lemmasoft.ren...lit=avi#p151863) рассказывается как можно конвертировать свое видео при помощи программы VLC (http://ru.wikipedia.org/wiki/VLC). Повторюсь - сам не пробовал, но если скачаете прогу и поиграетесь с ней, то наверняка добьетесь результата...)) Здесь очень хорошее пошаговое руководство http://lemmasoft.renai.us/forums/viewtopic.php?f=8&t=9812&hilit=tutorial
-
Визуальные новеллы своими руками.
Есть ли звук в вашем видео (без звука работать не будет)? "Does the movie have a sound track multiplexed in? Ren'Py requires a sound track, even a silent one, to properly synchronize audio and video." (http://lemmasoft.renai.us/forums/viewtopic.php?f=8&t=5233&hilit=movie+sound#p72096), http://lemmasoft.renai.us/forums/viewtopic.php?f=8&t=5233&hilit=movie+sound#p72568 Также, проблема может быть в том, что файл "собран" неправильно - почитайте здесь и здесь (надеюсь поможет).
-
Визуальные новеллы своими руками.
Добавлять можно, а как именно - зависит от того какую версию Рен'пи вы используете. Если 6.13.х (которая поддерживает скрины), то просто редактируете файл "screens.rpy" - находите <screen main_menu:" и в нем добавляете свои кнопки по аналогии с уже имеющимися. textbutton _("Start Game") action Start() textbutton _("Load Game") action ShowMenu("load") textbutton _(u"Моя кнопка") action ShowMenu("my_menu") textbutton _("Preferences") action ShowMenu("preferences") Если версия Рен'пи без скринов, то кнопки надо будет вставлять иначе. Список кнопок в старом меню сохранялся в специальной переменной <config.main_menu> - ее можно поменять полностью http://www.renpy.org...Menus#Main_Menu , либо вставлять и удалять кнопки по одной (как показано в примере кода music room) http://www.renpy.org...book/Music_Room <$ config.main_menu.insert(3, ("Music Room", "music_room", "True"))> - это строка на питоне, так что она должна быль либо в блоке <python> либо начинаться со знака $, "3" - это положение вставляемой кнопки (третья сверху), "Music Room" - название кнопки, "music_room" - название метки (label), куда нас перебросит кнопка при нажатии на нее, "True" - значит, что кнопка будет показана (если поменять на False, то кнопка будет скрыта).
-
Визуальные новеллы своими руками.
... попробуйте добавить справа и слева к картинке кусок с другой стороны размером в ширину экрана (или в пол-экрана), и когда он будет показан до конца - перепрыгните к началу картинки... хм, сам не понял, что написал...( Вобщем, начало картинки и конец картинки должны быть одинаковыми (панорама будет не 360 градусов а больше).
-
Визуальные новеллы своими руками.
Если используете версию Рен'пи 6.13.х то вам поможет <mousearea>. Здесь пример кода, который показывает экран с кнопками когда подводишь мышь к верхнему краю экрана и убирает его, когда мышь отводят вниз http://www.renpy.org/doc/html/screens.html#sl-mousearea (transition=dissolve - эффект с которым показывается/скрывается окно). Можете в качестве действия при наведении на активную область поставить показ экрана с анимированной картинкой, а в случае, когда курсор вне активной области - показывать экран с обычной картинкой. Вот, как-то так.
-
Визуальные новеллы своими руками.
Привет, наверное можно, но моих "знаниев" для этого недостаточно...;)
-
Визуальные новеллы своими руками.
Если countdown сделан так: def countdown(st, at, length=0.0): remaining = length - st if remaining > 5.0: return Text("%.1f" % remaining, color="#fff", size=72), .1 elif remaining > 0.0: return Text("%.1f" % remaining, color="#f00", size=72), .1 else: return anim.Blink(Text("0.0", color="#f00", size=72)), None image countdown = DynamicDisplayable(countdown, length=20.0)то <show countdown> и <hide countdown>. Только все равно с такими таймерами полно проблем - при переходе в игровое меню таймер не останавливается, сохранить его значение в какой-то момент не возможно. Может у вас получится придумать функцию, которая будет отсчитывать время и показывать его на экране (без использования DynamicDisplayable), тогда все может сработать.
-
Визуальные новеллы своими руками.
Похоже на использование нескольких countdown'ов... Можно попробовать скрывать их все после того, как осуществляется перекидка... Либо вообще не использовать countdown если нет необходимости отображать таймер, а воспользоваться функцией <timer> (нужна версия 6.12). Вот несколько ссылок - может пригодятся http://lemmasoft.ren...ug+in+Ren%27Py. http://lemmasoft.ren...ug+in+Ren%27Py. http://www.renpy.org...ght=timer#timer
-
Визуальные новеллы своими руками.
Понятно, <say> - это функция Рен'пи $ renpy.say ( e, "Hey, it is me talking!") e "Hey, it is me talking!" Если в качестве имен переменных использовать слова, зарезервированные Рен'пи для своего использования (названия функций и т.п.), то это приведет к ошибкам (не стоит называть переменные "jump", "int", "str", "show" и т.д.) Здесь, как в том анекдоте, лучше всего использовать "длинные_и_понятные_имена_переменных".
-
Визуальные новеллы своими руками.
Что за переменная (как называется, какое значение по умолчанию присвоено)? В тексте ошибки говориться (если я правильно понял), что вы пытаетесь прибавить числовое значение к функции (а не к другому числовому значению).
-
Визуальные новеллы своими руками.
Угу, вся функция "countdown" написана в блоке <python>, т.е. все команды должны быть на питоне. Эквивалентом команды <jump> будет <renpy.jump ("end")> Ах, да - самое главное! Не забудьте в самом начале блока "end" скрыть с экрана этот самый "countdown" <hide countdown> - иначе условие о том, что время истекло будет всегда выполнено, и программа "бесконечно" будет совершать переход к блоку "end".