Перейти к содержанию

Алекс__

Активные участники
  • Зарегистрирован

  • Посещение

Весь контент Алекс__

  1. Всем доброго времени суток...)) Чтобы как-то оживить тему, хочу поделиться небольшой игрушкой. Правда, это не визуальная новелла, а настольная игра с карточками. Правила не сложные и о них написано в помощи по игре. Играть могут до 5 игроков (можно играть против компьютера). Скачать дистрибутив для Win/Mac/Lin можно здесь - http://www.mediafire...ggmoph19guso25j
  2. Могу только добавить к сообщению Элионта - если надо сделать так, что бы нажатие клавиши работало только в определенном месте игры, то необходимо воспользоваться "экранами" 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
  3. Это зависит от того, что это за сообщение. Если это слова персонажа или автора, то поможет текстовый тэг 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"
  4. Изменения внешнего вида игры удобно вносить путем редактирования стилей init python: style.default.font = "mikachan.ttf"(Установит шрифт по умолчанию mikachan.ttf. Файл шрифта должен быть размещен в папке с игрой *имя_проекта*/game - если необходимо разместить его в отдельную подпапку, то при назначении шрифта обязательно должен быть указан путь к нему, например "/my_folder/mikachan.ttf" (папка со шрифтом находится *имя_проекта*/game/my_folder). При создании дистрибутива игры файл шрифта будет включен в него и, соответственно, игра будет правильно отображаться на любом другом компьютере. Кстати, не забываем об авторских правах на шрифты.) http://www.renpy.org...html/style.html
  5. Можем...)) http://www.renpy.org...g-and-text-tags Автоматический переход к следующему текстовому окну можно реализовать при помощи текстового тэга "nw". http://www.renpy.org...g-and-text-tags
  6. У паузы есть параметр "hard", который не позволяет пропустить ее клик'ом мыши $ renpy.pause (3.0, hard = True)
  7. to dalamar1: посмотрите здесь https://www.animeforum.ru/index.php?showtopic=61348&view=findpost&p=2619869
  8. Вся беда в использовании 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 Этот таймер можно использовать много раз, он не отсчитывает время пока игрок находится в меню, но если его сохранить и загрузиться из сохранения, то отсчет времени начнется с самого начала.
  9. to Айон XIV Не все так просто... http://lemmasoft.ren...ountdown#p97448
  10. 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 и дополнительные обозначения не нужны.
  11. Код для всех меню находится в файле "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 # остальной код без изменений
  12. Хм, очень странно... Единственное предложение - попробуйте другую версию Рен'пи (в 6.12 и 6.13 этот код работает нормально)
  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
  14. Вот - как вариант (правда сохранение работает не верно - при загрузке бинокль окажется в первоначальном положении) 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
  15. 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
  16. Есть ли звук в вашем видео (без звука работать не будет)? "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 Также, проблема может быть в том, что файл "собран" неправильно - почитайте здесь и здесь (надеюсь поможет).
  17. Добавлять можно, а как именно - зависит от того какую версию Рен'пи вы используете. Если 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, то кнопка будет скрыта).
  18. ... попробуйте добавить справа и слева к картинке кусок с другой стороны размером в ширину экрана (или в пол-экрана), и когда он будет показан до конца - перепрыгните к началу картинки... хм, сам не понял, что написал...( Вобщем, начало картинки и конец картинки должны быть одинаковыми (панорама будет не 360 градусов а больше).
  19. Если используете версию Рен'пи 6.13.х то вам поможет <mousearea>. Здесь пример кода, который показывает экран с кнопками когда подводишь мышь к верхнему краю экрана и убирает его, когда мышь отводят вниз http://www.renpy.org/doc/html/screens.html#sl-mousearea (transition=dissolve - эффект с которым показывается/скрывается окно). Можете в качестве действия при наведении на активную область поставить показ экрана с анимированной картинкой, а в случае, когда курсор вне активной области - показывать экран с обычной картинкой. Вот, как-то так.
  20. Привет, наверное можно, но моих "знаниев" для этого недостаточно...;)
  21. Если 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), тогда все может сработать.
  22. Похоже на использование нескольких 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
  23. Понятно, <say> - это функция Рен'пи $ renpy.say ( e, "Hey, it is me talking!") e "Hey, it is me talking!" Если в качестве имен переменных использовать слова, зарезервированные Рен'пи для своего использования (названия функций и т.п.), то это приведет к ошибкам (не стоит называть переменные "jump", "int", "str", "show" и т.д.) Здесь, как в том анекдоте, лучше всего использовать "длинные_и_понятные_имена_переменных".
  24. Что за переменная (как называется, какое значение по умолчанию присвоено)? В тексте ошибки говориться (если я правильно понял), что вы пытаетесь прибавить числовое значение к функции (а не к другому числовому значению).
  25. Угу, вся функция "countdown" написана в блоке <python>, т.е. все команды должны быть на питоне. Эквивалентом команды <jump> будет <renpy.jump ("end")> Ах, да - самое главное! Не забудьте в самом начале блока "end" скрыть с экрана этот самый "countdown" <hide countdown> - иначе условие о том, что время истекло будет всегда выполнено, и программа "бесконечно" будет совершать переход к блоку "end".

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.