Визуальные новеллы своими руками.
#901
Отправлено 24 Май 2014 - 20:19
#902
Отправлено 25 Май 2014 - 01:57
Пара примеров:
http://www.renpy.org...tml#renpy.input
http://lemmasoft.ren...lit=sex#p163687
#903
Отправлено 02 Июль 2014 - 19:30
Возник вопрос: я сделал квик тайм эвенты с нажимаемой кнопкой и таймером по подсказанной мне ссылочке http://lemmasoft.ren....php?f=8&t=7691
Но возникла проблемка: никак генератор случайных чисел не удаётся прилепить к этой функции.
Из всех пунктов работает только последний - не пойму почему.
Ведь сделал по аналогии с работающем скриптом.
02.07.jpg 91,67К
12 скачиванийЧто у меня в скрипте не так?
#904
Отправлено 02 Июль 2014 - 21:28
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(("ф", "й", "ц", "я", "ы")))
#905
Отправлено 02 Июль 2014 - 22:24
Спасибо работает!Генератор работает как и положено - можете проверить.
Все дело в экране "timeout_event". Экраны объявляются до того как начнет работать сам скрипт (даже если объявления экранов размещены в середине скрипта, они будут выполнены до начала исполнения метки start). В вашем примере экран "timeout_event" объявлен дважды и, таким образом, в игре используется последний вариант.
Решить проблему можно двумя способами:
1 - изменить название одного из экранов
2 - сделать один экран, но вместо конкретного указания кнопки, которую надо будет нажать, использовать переменную, и при вызове данного экрана указывать значение этой переменной (кстати вместо названия метки для действия Jump также можно использовать переменную). Как-то так.
#906
Отправлено 12 Июль 2014 - 14:00
Мне нужно получить нестандартный формат экрана. Т.е. не как по умолчанию, когда текст располагается горизонтально внизу экрана, а чтобы текст располагался слева (или справа) в вертикальном поле, занимающем приблизительно 1\4 экрана по горизонтали. Можно ли это сделать в Ren Py?
#907
Отправлено 12 Июль 2014 - 23:02
Если есть необходимость использовать разные виды текстового окна (стандартное, слева, справа), то нужно добавить соответствующие параметры в код экрана "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.3Fhttp://www.renpy.org...properties.html
http://www.renpy.org...tml/config.html
#908
Отправлено 22 Июль 2014 - 18:37
Ситуация, хочу использовать реплеи определённых моментов игры, но никак не получается сделать их меню открываемым (либо сразу открыто, либо ошибка), что я делаю не так?
P.S. Можно и не меню - а просто запуск с определенного места игры - метод с галереей показанный тут (смотреть ссылку), не подошёл.
http://www.renpy.org...kalnaja_komnata
Ибо кроме как для показа картинок не годится (не знаю как вместо картинки сделать переход в определённое место игры).
Прикрепленные файлы
Сообщение отредактировал Int01: 22 Июль 2014 - 18:53
#909
Отправлено 22 Июль 2014 - 21:24
Ошибка в самом начале может быть связана с тем, что значение устойчивой переменной не было задано.
Т.к. устойчивые переменные используются именно для того, чтобы при каждом перезапуске игры их значения не изменялись на значения по умолчанию, первоначальные значения для них надо устанавливать так
init:
if not persistent.my_variable:
$ persistent.my_variable = False(если значение устойчивой переменной persistent.my_variable отсутствует, то установим ее значение False; при следующем запуске игры у persistent.my_variable уже будет значение, условие не выполнится, и значение не будет изменено)
#910
Отправлено 28 Июль 2014 - 15:41
Спасибо, это работает.Значения устойчивых переменных (persistent data) сохраняются даже при перезапуске игры, поэтому, если разблокировка вашего меню зависит от значения такой переменной, и однажды вы установили это значение, то меню будет разблокировано всегда. Точнее, до того момента, пока вы не измените значение устойчивой переменной на какое-нибудь другое или не сотрете все значения устойчивых переменных (кнопка в модуле запуска "delete persistent").
Ошибка в самом начале может быть связана с тем, что значение устойчивой переменной не было задано.
Т.к. устойчивые переменные используются именно для того, чтобы при каждом перезапуске игры их значения не изменялись на значения по умолчанию, первоначальные значения для них надо устанавливать такinit: if not persistent.my_variable: $ persistent.my_variable = False(если значение устойчивой переменной persistent.my_variable отсутствует, то установим ее значение False; при следующем запуске игры у persistent.my_variable уже будет значение, условие не выполнится, и значение не будет изменено)
А как прикрутить реплеи к разблокирующимся превьюшкам (картинкам), та статься в этом не помощник, там только картинки могут отображаться, а не моменты из игры.
http://www.renpy.org...kalnaja_komnata
28.07.png 118,57К
8 скачиваний
#911
Отправлено 28 Июль 2014 - 20:31
Логично - это ведь галерея картинок...та статься в этом не помощник
Просто сделайте экран с несколькими кнопками, а в качестве действия поставьте на них Replay("название_нужной_метки")
(сам делать не пробовал, так что...)
http://www.renpy.org...oms.html#replay
#912
Отправлено 28 Июль 2014 - 22:06
Во спасибо, помогло!Логично - это ведь галерея картинок...
Просто сделайте экран с несколькими кнопками, а в качестве действия поставьте на них Replay("название_нужной_метки")
(сам делать не пробовал, так что...)
http://www.renpy.org...oms.html#replay
Это же та же статься, что я на Русском читал - блин не перевели 3 раздел
Сообщение отредактировал Int01: 28 Июль 2014 - 22:07
#913
Отправлено 28 Июль 2014 - 22:15
#914
Отправлено 19 Август 2014 - 01:09
#915
Отправлено 19 Август 2014 - 23:51
http://www.renpy.org...#special-labels
http://www.renpy.org..._a_Splashscreen
#916
Отправлено 04 Сентябрь 2014 - 20:22
Если вводить в код реплику как "Текст реплики", то текст, без имени персонажа будет выводиться под верхней границей текстового окна, а если в вводить реплику как s "Текст реплики"(s - короткое имя персонажа), то под верхней границей будет находиться имя персонажа, а на след. строчке. Так вот, как сделать так, чтобы текст реплики всегда выводился, грубо говоря, на второй строке текстового окна, независимо от того, имеется ли имя персонажа или нет. Заранее спасибо, надеюсь внятно объяснил)
#917
Отправлено 05 Сентябрь 2014 - 17:06
define e = Character ("Eileen")
define s = Character(" ")
define narrator = Character(" ")
label start:
e "Привет!"
s "И тебе привет!"
"?"
#918
Отправлено 16 Сентябрь 2014 - 19:00
1. Как можно (и можно ли) с помощью Action вызвать определенный label с параметрами?
Есть, предположим, некий label1:
label label1(variable1): $variable1 +=1 return
а) Как через стандартный Action Jump перейти к нему с указанием параметра? Если бы параметра не было, то
все просто:
textbutton "Тест" action Jump("label1")А с параметром?
б) Можно ли как-то сделать не Jump, а Call из кнопки? Т.е. мне надо, чтобы просто выполнился label1, но при этом
код продолжался как после Call.
2. Можно ли передавать в качестве параметров названия, к примеру, скринов?
Что-то в таком духе:
screen test1(scr): textbutton "самоуничтожение" action Hide(scr)
и далее:
call screen test1(test1)
Но этот код не работает.
#919
Отправлено 16 Сентябрь 2014 - 22:03
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
#920
Отправлено 17 Сентябрь 2014 - 10:01
Про SetVariable я был в курсе, не очень удачный пример подобрал, пожалуй. Там смысл был не в том, что в лабеле делается, а
именно в вызове этого лабела через Call или его аналог. Еще раз перечитав все, что можно на эту тему, делаю вывод, что из Action
все же только Jump доступен. И, судя по всему, параметры через этот Jump тоже передать нельзя (или все-таки как-то можно?)
По второму моменту — оказалось, что мой код тоже сработал бы, просто надо было проставить кавычки для параметра.
Т.е. не
call screen test1(test1),а
call screen test1("test1")Про разницу между Call и Show знал, а вот про modal нет — очень полезно, спасибо.
Тогда еще один вопрос — можно ли как-то вызвать несколько экземпляров, к примеру, одного скрина одновременно?
Если сделать так:
Show screen test1("screen1")
Show screen test1("screen2"), то сначала скрин test1 вызовется с параметром "screen1" и тут же следом он же с параметром "screen2".А можно ли вызвать его экземпляры одновременно с этими параметрами, чтобы они вместе отображались на экране?
Количество пользователей, читающих эту тему: 3
0 пользователей, 3 гостей, 0 анонимных








