Перейти к содержанию
Решена проблема отправки писем ×
АнимеФорум

Визуальные новеллы своими руками.


000

Рекомендуемые сообщения

всем привет, делаю менюшку без фреймов, возникла следующая проблема.

сделал кнопки меню таким образом:

http://s7.hostingkartinok.com/uploads/images/2015/01/ea9b79e0448078a4bbdf50797d8e599a.jpg

vbox xalign .1 yalign .24:
           imagebutton:
               idle "Images/okno1.png"
               hover "Images/okno2.png"
               action Preference("display", "window")   	
               
vbox xalign .1 yalign .18:
           imagebutton:                  
               idle "Images/polniiekran1.png"
               hover "Images/polniiekran2.png"
               action Preference("display", "fullscreen")

они работают как должны, но если увести курсор с кнопки, она все равно визуально "не активирована" (видно на картинке выше).

мне просто надо поставить картинки "Images/okno2.png" или "Images/polniiekran2.png" поверх кнопки, после клика по ней. как это можно реализовать? чувствую что решение в 2 слова, но как ни бился, не получается.

если решить эту задачу то меню полностью готово. Спасибо

18413885_1203511827_bp.gif

Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 1 тыс
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

Изображения в теме

Кроме картинок для состояний idle и hover (обычная-не в фокусе / обычная в фокусе) надо добавить еще картинки для состояний selected_idle и selected_hover (активированная-не в фокусе / активированная-в фокусе):

vbox xalign .1 yalign .24:
           imagebutton:
               idle "Images/okno1.png"
               hover "Images/okno2.png"
               selected_idle "Images/okno2.png"
               selected_hover "Images/okno2.png" # или другую картинку для этого состояния
               action Preference("display", "window")          
               
vbox xalign .1 yalign .18:
           imagebutton:                  
               idle "Images/polniiekran1.png"
               hover "Images/polniiekran2.png"
               selected_idle "Images/polniiekran2.png"
               selected_hover "Images/polniiekran2.png"
               action Preference("display", "fullscreen")

http://www.renpy.org...tml#imagebutton

Ссылка на комментарий
Поделиться на другие сайты

Здравствуйте, хочу добавить в игру свой курсор, Вот здесь нашел простой код

 

init: 
 $  config.mouse = {"default" : ("cursor.png", 0, 0)}

 

но он выдает ошибку, когда вставляю в конец файла options.rpy, подскажите как правильно это сделать. Спасибоsmile.gif

 

нашел ответ на свой вопросlaugh.gif

config.mouse = { 'default' : [ ('mouse.png', 0, 0)] }

Изменено пользователем AruT0 (смотреть историю редактирования)
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Здрасте. Пытаюсь сделать что то типа порта на андроид и возникает вопрос: можно ли сделать что бы рабочее окно программы было фулскрином?

А то я выбираю фоны в фуллхд, и незнаю как они будут смотреться на более низком разрешении (проверить не на чем). Так то мысли есть поставить размеры программы 1920х1080, но опять же повторюсь, не знаю как будет на меньших разрешениях... Вообщем если есть какой то секретный код, то подскажите плизз

Ссылка на комментарий
Поделиться на другие сайты

и еще (простите за мою неосведомленность): если я пишу все диалоги в script это плохо?

и можно ли в развилке не вставлять переход на другую метку, тут же в результате писать дальше диалоги до завершения ветки. или это как то негативно сказывается.

Ссылка на комментарий
Поделиться на другие сайты

В последних версиях Рен'Пи можно делать сборки игр для андроид. Могу ошибаться, но на андроиде игры запускаются всегда в полноэкранном режиме.

Код проекта можно поместить в один файл (например script.rpy) или в несколько - как вам удобнее работать с ним.

В меню совсем не обязательно делать переход на новую метку, можно просто продолжить писать код, только не забудьте про отступы (http://www.renpy.org...t_are_blocks.3F).

Ссылка на комментарий
Поделиться на другие сайты

спасибо за ответ.

ну да, так то в полноэкранном режиме, но я думаю, не обрежется ли большая картинка на меньшем экране... а то на одном экране будет норм, а на другом только левый верхний угол отобразится, а кнопки "новая игра", "настройки", "выход" останутся за пределами экрана... ну да ладно. может у кого из знакомых найду аппарат протестировать. просто я думал, что есть какая то альтернативная запись, кроме как указывать точное разрешение.

про переходы разобрался, не так то все и сложно.

Сейчас терзают меня мысли: можно ли как то реализовать в меню кнопку, переключающую все image на другие? ну то есть можно вытянуть оригинальные сцены, пообрезать в paint.net персонажей и сделать порт максимально похожим на оригинал, но т.к. игруля старенькая, то и сцены, и персонажи слабого качества, поэтому первоначально задумывалось заменить всю графику. Но дабы избежать коментов типа "раньше было лучше", пришла мысль про кнопку "оригинал\не оригинал". тут надо применить (как написано в руководстве для начинающих) конструкцию "Если-То-Иначе"? или это только для диалогов?

Ссылка на комментарий
Поделиться на другие сайты

Для того, чтобы фоны полностью помещались на экране надо верно указать размеры игрового экрана (config.screen_height и config.screen_width - можно их найти в options.rpy) - http://www.renpy.org...g.screen_height

При запуске игры окно будет полностью показано на экране (его физический размер в пикселях может и не совпасть с тем размером, который вы установите - тогда программа растянет или сожмет игровое окно, сохранив при этом его пропорции).

 

Можете попробовать сделать кнопку, которая будет переключать значение некой переменной, а всю графику сделать с помощью ConditionSwitch (http://www.renpy.org...ConditionSwitch http://lemmasoft.ren...hp?f=51&t=19063)

http://www.renpy.org...ml#data-actions

Ссылка на комментарий
Поделиться на другие сайты

Подскажите еще с одним вопросом: в проекте папка "tmp" для чего нужна? там файлы отображаются все которые я раньше использовал (музыка, картинки, от которых отказался) и на которых остановился.

Просто когда я собирал андроид приложение, вышло 400Мб

Создал копию проекта, удалил tmp (осталась только папка и один файл txt)-104Мб. Так вот, перед созданием приложения надо удалять этот tmp? Или наоборот не стоит, а то настигнет какая-то кара?

Ссылка на комментарий
Поделиться на другие сайты

Файлы в этой папке создаются автоматически, перед созданием дистрибутива папку удаляйте.

(также удаляйте ее если вдруг при работе с imagemap'ами будут возникать всякие глюки и кракозябры)

Ссылка на комментарий
Поделиться на другие сайты

Привет. Такой вопрос — можно ли во время вызова диалогов (скрина say)

как-то блокировать присутствующие на экране imagebutton-ы? Т.е. если начинается

диалог, чтобы нельзя было ничего из активных объектов нажать в это время.

 

У меня пока только какие-то довольно-таки дикие решения крутятся в голове —

типа подвесить какую-то переменную, которая при on "show" диалогового окна будет

False, а при on "hide" — True. Ну и везде в кнопках в action прописать через If(), что

код выполняется только если переменная True. Но это же извращение то еще.

Может (да и наверняка) что-то более очевидное есть?

Ссылка на комментарий
Поделиться на другие сайты

Придумался еще вариант — засунуть практически прозрачный imagebutton c NullAction() в скрин Say размером до

самого диалогового окна... Но что-то это тоже, мягко говоря, не слишком изящное решение.

Ссылка на комментарий
Поделиться на другие сайты

Как вариант

screen testbutton:
   textbutton "Test" action If(renpy.get_screen("say"), None, Hide("testbutton")) align (0.5, 0.05)

# The game starts here.
label start:
   
   show screen testbutton
   "Line 1"
   "Line 2"
   $ renpy.pause()
   "???"
   "Line 3"

http://www.renpy.org...enpy.get_screen

Ссылка на комментарий
Поделиться на другие сайты

Спасибо. Полезная функция. Хотя по сути, та же схема с If на каждом imagebutton, хоть и без лишних переменных...

Интересно, а можно как-то на action (через Function() или еще как-то) подвесить действие аналогичное клику во время диалогового окна?

Т.е. чтобы клик по некой imagebutton (которая будет прозрачной и растянутой на весь экран) обрабатывался как стандартный клик во

время присутствия скрина say?

Ссылка на комментарий
Поделиться на другие сайты

Ага, нашел на lemmasoft решение. Делаем скрин say modal True. И потом в нем же вешаем на весь экран прозрачную imagebutton с action такого вида: renpy.curry(renpy.restart_interaction). Тогда клик будет обрабатываться как надо, при этом все что под say нельзя будет нажать. Остался только один вопрос — как заставить space и ctrl работать с таким say как полагается?
Ссылка на комментарий
Поделиться на другие сайты

Так, если убрать modal True, то ctrl работает нормально (и say все перекрывает как надо). Осталось только space оживить. :)

ADD: Если добавить

key "K_SPACE" action renpy.curry(renpy.restart_interaction)

,то все работает как надо.

Изменено пользователем Vielstern (смотреть историю редактирования)
Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...
Недавно рассказывал одногруппнику в универе про визуальные новеллы и даже показывал кое-что на ноутбуке. Затронул тему Ren'Py, а он мне как и сказанёт: "А зачем париться с движками, если её точно так же можно сделать в Power Point?". И чем больше я об этом думаю, тем меньше мне эта мысль дает покоя.
Ссылка на комментарий
Поделиться на другие сайты

проблемы с последствиями принятых ранее решений.

если kinetic novel без ветвлений -- согласен, легко можно сделать как презентацию (только придумать, как запоминать "где остановился").

а если что-то посложнее, то не выйдет.

Ссылка на комментарий
Поделиться на другие сайты

  • 5 недель спустя...

Вопрос уважаемым новелло-делам.

 

http://www.fabervisum.org/wp-content/uploads/2015/01/%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5.jpg

Смастерил вот такое окошко загрузки-сохранения. Но так и не нашел, как можно указать сохранению свое имя, допустим, номер или название текущей главы.

Единственный способ, который пришел в голову, это массив с количеством элементов, равным числу сохранений, и хранить названия в этом массиве, согласно номеру сохранения, и брать значение из него.

 

И еще вопрос. Почему-то при попытке закрыть игру (крестиком) в главном меню на экранах загрузки или настроек, происходит вот такое:

http://www.fabervisum.org/wp-content/uploads/2015/01/Выход.jpg

 

Нормально работает только экран титров, но он у меня вызывается через Show и прячется через Hide, соответственно в игре такой трюк не прокатит и для других окон метод вызова не годится, они вызываются именно как меню-окна.

Ссылка на комментарий
Поделиться на другие сайты

По вопросу с именами файлов сохранения разобрался, вот, может кому пригодится:

 

Свое имя для файла сохранения.

 

В RenPy для этого есть зарезервированная переменная save_name = "", значение которой записывается в файл сохранения и возвращается функцией:

FileSaveName(i)

просто меняем ее у себя в коде по мере надобности, например вот так:

$ place = p3 # указываем в переменной place текущее место

$ save_name = "Глава " + str(int(stage)) +". " + place # в stage хранится номер главы

пример того, что можно получить:

 

C3bSYYmcJHM.jpg

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Всем привет!

Как я понимаю, для создания игры большинство используют стандартные текстовые редакторы, которые идут в комплекте с СДК. Но некоторых эти инструменты не устраивают, и они пытаются приспособить что-то другое. Вот и я решил внести свои пять копеек. Может быть кому и пригодится.

За основу взят текстовый редактор RJ TextEd. Почему именно он? Он умеет все то же, что и другие редакторы для программистов (напр., та же Editra) + немного больше. Некоторые его особенности:

  • изначально приличное количество опций для работы с текстом (напр., удаление/дублирование строки, на которой находится курсор, или удаление/добавление отступа у всех выделенных строк, обрамление выделенного фрагмента разного вида кавычками и т.п.);
  • удобный инструмент для ввода кода цвета (ставите курсор в нужное место, открываете инструмент, выбираете цвет и по закрытию окна код вставляется в нужное место);
  • благодаря использованию FastScript есть возможность написания собственных скриптов на 4 языках программирования;
  • если со скриптами разобраться сложно, то можно использовать макросы;
  • весьма обширные возможности по настройке интерфейса программы (можно скрывать/отображать почти все панели, кнопки, а с помощью сриптов добавлять свои собственные кнопки, панели, меню, менять шрифт как программы, так и открываемых документов).
  • проверка орфографии для английского и русского языков.
     

Это только краткий перечень. Подробнее можно почитать на оф. сайте или в Интернете.

 

Теперь особенности сборки:

  • полностью реализована подсветка языка RenPy (несколько десятков ключевых слов и около двух сотен различных Properties). Все они разбиты на 4 группы:
    1 группа (Keywords) - наиболее часто встречающиеся ключевые слова (напр., label, scene, init, jump и т.п.);
    2 группа (Effects) - отдельно выделил различные эффеты (fade, dissolve и т.п.)
    3 группа (Properteis) - различные свойства (Properties)
    4 группа (Operators) - различные служебные слова и операторы (with, continue, for и т.п.)
    Для каждой группы в настройках можно назначить свой цвет, гарнитуру шрифта.
  • по CTRL-SPACE доступен список автодополнения (несколько десятков наиболее часто встречающихся названий меток, функций). В списке действует инкрементный фильтр.
  • автозавершение классов. Попробуйте набрать "renpy." или "ui." и подождать полсекунды или набрать CTRL-SPACE. Появится весь доступный на данный момент (начало апреля 2015) список свойств и функций. В списке действует инкрементный фильтр.
  • при вводе аргументов функции (когда вы ставите курсор между скобок) появляется всплывающая подсказка. Если она пропала, то вызвать её можно по CTRL+SHIFT+H.
  • кроме этого, добавил автозавершение после "at/with+пробел";
  • реализовал сворачивание кода по label, а также теперь можно отслеживать и быстро перемещаться по всем лейблам на вкладке "проводник кода".
  • добавил несколько кнопок для удобной вставки тэгов (напр., курсив, жирный и т.п.). Просто выделите текст и нажмите на кнопку. Тэги автоматически вставятся.
     
  • Удалил все лишние языки подсветки. Если они вам нужны, то скачайте с оф. сайта портативную версию и скопируйте из папки Syntax нужные файлы.
  • Версия не требует установки.
  • Оставлена только версия для Windows x32.
     

 

Пожелания, комментарии приветствуются. Если нужны какие-то скрипты, а самим лениво возиться, то можете обращаться. Попробую реализовать.

Ссылка на скачивание

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

Недавно рассказывал одногруппнику в универе про визуальные новеллы и даже показывал кое-что на ноутбуке. Затронул тему Ren'Py, а он мне как и сказанёт: "А зачем париться с движками, если её точно так же можно сделать в Power Point?". И чем больше я об этом думаю, тем меньше мне эта мысль дает покоя.

 

Вообще, можно.

Единственное значимое ограничение, на мой взгляд, требование установки офиса на комп игрока.

+ придется озаботиться о совместимости, аудио/видео кодеках и т.п. Ну т.е. если создавать чисто для себя, то без проблем. Даже, хочу заметить, эта мысль весьма любопытная. Но вот при желании своим творением поделиться проблемы, конечно, неизбежно возникнут.

 

Ренп, в этом отношении, автономнее.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...

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