Перейти к содержанию
АнимеФорум

Алекс__

Активные участники
  • Постов

    186
  • Зарегистрирован

  • Посещение

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

  1. С вопросами лучше сюда - http://vk.com/renpy Возможно, то что вы делаете можно реализовать через DinamicDisplayable (в обучении пример с обратным отсчетом). В новых версиях все работает (проверьте настройки (preferences) / показывать переходы (show transitions). Осваивайте ATL и Screen Language - для примера посмотрите код http://vk.com/wall-7553243_13421
  2. Фоны можете сделать любого размера (в файле options.rpy установите соответствующие значения config.window_width и config.window_height) - на любом мониторе в полноэкранном режиме Рен'Пи корректно нарисует ваш фон с сохранением пропорций.
  3. Можете еще вместо action renpy.curry(renpy.restart_interaction) попробовать action Return("smth") http://www.renpy.org...control-actions
  4. Как вариант 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
  5. Файлы в этой папке создаются автоматически, перед созданием дистрибутива папку удаляйте. (также удаляйте ее если вдруг при работе с imagemap'ами будут возникать всякие глюки и кракозябры)
  6. Для того, чтобы фоны полностью помещались на экране надо верно указать размеры игрового экрана (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
  7. В последних версиях Рен'Пи можно делать сборки игр для андроид. Могу ошибаться, но на андроиде игры запускаются всегда в полноэкранном режиме. Код проекта можно поместить в один файл (например script.rpy) или в несколько - как вам удобнее работать с ним. В меню совсем не обязательно делать переход на новую метку, можно просто продолжить писать код, только не забудьте про отступы (http://www.renpy.org...t_are_blocks.3F).
  8. Кроме картинок для состояний 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
  9. Почему не сделать данный выбор частью splashscreen'а?
  10. Посмотрите здесь -https://www.animeforum.ru/index.php?app=forums&module=forums§ion=findpost&pid=2692089
  11. Добавьте параметр yinitial viewport id "vp": yinitial 1.0 http://www.renpy.org...s.html#viewport
  12. 1. Да, так. 2. Можно сделать экран, который будет отображать значение переменной "деньги" (важно: в версии 6.9.3 экранов еще нет, они появились в версии 6.11) screen money_scr: text "На кармане [money] деревянных." size 35 align (0.05, 0.05) label start: $ money = 0 scene black show screen money_scr "Мама, дай на интернет" $ money +=200 "Пасиба ^-^" "Надо оплатить и-нет..." $ money -=200 "... а то танчики без меня уедут" http://www.renpy.org...ml/screens.html http://www.renpy.org...en_actions.html 3. а) количество переменных не ограничено, если есть желание показать огромное количество данных - можете поместить их внутрь вьюпорт'а - http://www.renpy.org...s.html#viewport, б) значения переменным лучше всего присваивать в самом начале метки start - для их правильного сохранения - http://www.renpy.org...d_rollback.html 4. Попробуйте сделать экран, который в случае не оплаты комнаты будет показывать надпись о достаточности денег. screen oplata_scr: textbutton "Оплатить" action If((oplata and (money>tax)), [setVariable("money", money-tax), SetVariable("oplata", False)], None) align (0.95, 0.05) text "На кармане [money] деревянных." size 35 align (0.05, 0.05) if oplata: if money < tax: text "Пора платить, а денег не хватает..." size 35 align (0.05, 0.15) else: text "У вас достаточно денег для оплаты комнаты" size 35 align (0.05, 0.15) label start: $ money = 0 $ tax = 400 $ oplata = False scene black show screen oplata_scr "А не пора ли платить за квартиру?" $ oplata = True "Ой, пора..." "Мама, дай на интернет" $ money +=200 "Пап, дай на кино" $ money +=300 "Пасиба ^-^" "???" Бегущую строку и прочие эффекты сможете сделать при помощи ATL - http://www.renpy.org/doc/html/atl.html
  13. Дык, написал же - "на сколько я знаю"...;) Опять же, "use" - это хорошо, но для некоторых "извращенных" целей может не подойти... По поводу Notify'я - в качестве аргумента для действия Notify надо задать некий текст, поэтому кавычки можно (а в случае с переменными, содержащими текстовое значение, не нужно) ставить (так же как и для названия текстовой кнопки). Notify(j.name) Notify(str(j.mpcost)) Вот еще немного другой, чем у Романа, пример форматирования строки textbutton j.name hovered Notify("Не хватает энергии!") action Notify("На этот прием не хватает " + str(j.mpcost) + " энергии")
  14. На сколько я знаю, вызвать несколько экземпляров одного экрана нельзя. Можете сделать несколько одинаковых экранов с разными названиями и вызвать их с разными значениями переменных (сделать придется столько экранов, сколько их одновременно должно быть на экране). Если их предполагаемое количество десятки-сотни, то попробуйте создать их автоматически - http://www.renpy.org/doc/html/screen_python.html
  15. 1. Если при нажатии на кнопку необходимо изменить значение переменной, то для этого есть действие SetVariable http://www.renpy.org...ml#data-actions 2. Можно, только синтаксис немного другой, и вместо call лучше использовать show, т.к. в первом случае игра не продвинется дальше, пока экран не вернет какое-либо значение, а когда вы скроете экран он уже точно больше ничего не вернет. Если же надо заставить игрока повзаимодействовать с экраном до тех пор, пока он не нажмет кнопку "самоуничтожение", то можете установить этому экрану значение параметра modal - True http://www.renpy.org...creen-statement screen scr_1: vbox: align (0.5, 0.0) text "[var]" textbutton "Тест" action SetVariable("var", var+1) screen test1: modal False textbutton "самоуничтожение" action Hide(scr) # The game starts here. label start: $ var = 0 show screen scr_1 e "You've created a new Ren'Py game." show screen test1(scr="test1") e "Once you add a story, pictures, and music, you can release it to the world!" "..." "?" jump start
  16. Вы можете сделать для этих целей персонажа с именем " " (пробел) - видно его не будет, но строчку занять должен. Или даже добавить такое имя персонажу narrator (этот персонаж используется в случае, когда вы просто пишете строку с текстом не указывая, какого-либо персонажа). define e = Character ("Eileen") define s = Character(" ") define narrator = Character(" ") label start: e "Привет!" s "И тебе привет!" "?"
  17. Вам надо сделать метку splashscreen, в ней написать код для показа картинок и в конце метки не забыть про команду return - должно получиться. http://www.renpy.org...#special-labels http://www.renpy.org..._a_Splashscreen
  18. Дык, функция реплея появилась позже перевода статьи...
  19. Логично - это ведь галерея картинок... Просто сделайте экран с несколькими кнопками, а в качестве действия поставьте на них Replay("название_нужной_метки") (сам делать не пробовал, так что...) http://www.renpy.org...oms.html#replay
  20. Значения устойчивых переменных (persistent data) сохраняются даже при перезапуске игры, поэтому, если разблокировка вашего меню зависит от значения такой переменной, и однажды вы установили это значение, то меню будет разблокировано всегда. Точнее, до того момента, пока вы не измените значение устойчивой переменной на какое-нибудь другое или не сотрете все значения устойчивых переменных (кнопка в модуле запуска "delete persistent"). Ошибка в самом начале может быть связана с тем, что значение устойчивой переменной не было задано. Т.к. устойчивые переменные используются именно для того, чтобы при каждом перезапуске игры их значения не изменялись на значения по умолчанию, первоначальные значения для них надо устанавливать так init: if not persistent.my_variable: $ persistent.my_variable = False(если значение устойчивой переменной persistent.my_variable отсутствует, то установим ее значение False; при следующем запуске игры у persistent.my_variable уже будет значение, условие не выполнится, и значение не будет изменено)
  21. Сделать можно, для этого надо отредактировать "screen say". Если вид текстового окна во время всей игры будет одинаковым, то можно настроить стили или прямо вписать параметры в код экрана "say". Если есть необходимость использовать разные виды текстового окна (стандартное, слева, справа), то нужно добавить соответствующие параметры в код экрана "say", но их значения сделать переменными, и при объявлении различных персонажей задать значения этих переменных (тогда у разных персонажей будут разные текстовые окна). Например: ############################################################################## # Say # # Screen that's used to display adv-mode dialogue. # http://www.renpy.org/doc/html/screen_special.html#say screen say: # Defaults for side_image and two_window default side_image = None default two_window = False default box_yfill = False # укажем значения по умолчании для наших переменных (тогда не придется их указывать абсолютно для всех персонажей в игре) - не растягивать окно на весь экран по вертикали default box_yalign = 1.0 # положение окна внизу экрана # Decide if we want to use the one-window or two-window variant. if not two_window: # The one window variant. window: id "window" yalign box_yalign # положение окна по вертикали yfill box_yfill # растягивание окна по вертикали на весь экран has vbox: style "say_vbox" if who: text who id "who" text what id "what"(если хотите показывать имя персонажа в отдельном окне, то по аналогии надо будет изменить и вторую часть кода экрана "say") # Declare characters used by this game. define e = Character('Eileen', color="#c8ffc8", show_box_yfill=True, show_box_yalign=0.0, window_right_margin=config.screen_width*3/4) # укажем необходимые значения наших переменных (перед названием переменной необходимо добавить show_ ) # The game starts here. label start: "Test" e "Hello, world!" "?" http://www.renpy.org...n_they_speak.3F http://www.renpy.org...properties.html http://www.renpy.org...tml/config.html
  22. Генератор работает как и положено - можете проверить label start: $ var = renpy.random.randint (1,2) "[var]" jump start Все дело в экране "timeout_event". Экраны объявляются до того как начнет работать сам скрипт (даже если объявления экранов размещены в середине скрипта, они будут выполнены до начала исполнения метки start). В вашем примере экран "timeout_event" объявлен дважды и, таким образом, в игре используется последний вариант. Решить проблему можно двумя способами: 1 - изменить название одного из экранов 2 - сделать один экран, но вместо конкретного указания кнопки, которую надо будет нажать, использовать переменную, и при вызове данного экрана указывать значение этой переменной (кстати вместо названия метки для действия Jump также можно использовать переменную). Как-то так screen t_scr: key var_x action [Hide("t_scr"), Jump("win")] text "Нажмите [var_x]" align (0.5, 0.5) label win: "!" jump start # The game starts here. label start: call screen t_scr(var_x=renpy.random.choice(("ф", "й", "ц", "я", "ы")))
  23. Вам поможет renpy.input Пара примеров: http://www.renpy.org...tml#renpy.input http://lemmasoft.ren...lit=sex#p163687
  24. Здесь целых два способа - http://lemmasoft.ren...it=music+prefix (ссылка для второго способа несколько изменилась) http://www.renpy.org...egister_channel
  25. label start: $ study = False $ military = False "росту" menu: "Идти учиться в ВУЗ": $ study = True jump v01 "Идти в армию": $ military = True jump v02 label v01: "учусь в ВУЗе" jump v03 label v02: "Служу в армии" jump v03 label v03: "закончилась лямка" "ищу работу" "Возьмете на работу?" if study: # тоже что и if study == True jump v05 elif military: # можно просто else:, т.к. других вариантов просто нет jump v04 label v04 "у вас нет высшего образования" "продолжение 1" return label v05: "Вы приняты" "продолжение 2" return Полезные ссылки: http://www.renpy.org...%89%D0%B8%D1%85 http://www.renpy.org...t_are_blocks.3F
×
×
  • Создать...

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