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

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

Опубликовано
Добрый день уважаемые творцы визуальных новелл. Я с очередным вопросом. Как добавить в главное меню кнопки я понял, а вот как сделать так что бы эти кнопки запускали отдельный файл (как в демонстрации только из главного меню)я так и не разобрался. Может кто помочь?
  • Ответов 1 тыс
  • Создана
  • Последний ответ

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

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

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

Опубликовано (изменено)
С запуском другой программы получилось. Большое спасибо. Но остается вопрос про запуск другой игры из данной (как в демонстрации, только там есть меню с помощью которого выбирается нужная часть а мне нужно что бы запускалось из главного меню и потом обратно возвращалось). Изменено пользователем Radogast (смотреть историю редактирования)
Опубликовано (изменено)
Может я просто не так выразился. Вся игра состоит из нескольких частей (tutorial_playing.rpy, tutorial_quickstart.rpy, tutorial_sprite.rpy и т.д.)к которым обращаются по ходу программы. А мне нужно обращаться к этим частям из главного меню. Изменено пользователем Radogast (смотреть историю редактирования)
Опубликовано

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

 

Лейтенант

1) Установи яву (Java Runtime Environment)

2) Либо используй другой редактор, например *.rpy можно открыть в Notepad++ и выставить подсветку синтаксиса Питона (синтаксис > P > Python).

Опубликовано

Визуальная новелла «Проклятие мертвой хозяйки».

Любительская работа на основе конструктора "Novelty". Как всегда с заимствованным артом и частью музыки (к сожалению, за неимением таланта :( )

В новелле три варианта развития событий в зависимости от выбора игрока и 4-5 концовок. Среднее время ~15-20 мин. Размер ~ 84 Mb

1 архив:

http://narod.ru/disk/38595811001/%D0%9F%D1%80%D0%BE%D0%BA%D0%BB%D1%8F%D1%82%D0%B8%D0%B5%20%D0%BC%D0%B5%D1%80%D1%82%D0%B2%D0%BE%D0%B9%20%D1%85%D0%BE%D0%B7%D1%8F%D0%B9%D0%BA%D0%B8.part1.rar.html

2 архив:

http://narod.ru/disk/38591764001/%D0%9F%D1%80%D0%BE%D0%BA%D0%BB%D1%8F%D1%82%D0%B8%D0%B5%20%D0%BC%D0%B5%D1%80%D1%82%D0%B2%D0%BE%D0%B9%20%D1%85%D0%BE%D0%B7%D1%8F%D0%B9%D0%BA%D0%B8.part2.rar.html

3 архив:

http://narod.ru/disk/38596813001/%D0%9F%D1%80%D0%BE%D0%BA%D0%BB%D1%8F%D1%82%D0%B8%D0%B5%20%D0%BC%D0%B5%D1%80%D1%82%D0%B2%D0%BE%D0%B9%20%D1%85%D0%BE%D0%B7%D1%8F%D0%B9%D0%BA%D0%B8.part3.rar.html

 

Существующие известные проблемы (или фичи конструктора Novelty):

- иногда после загрузки сохранения пропадает фон или музыка (лечится прохождением игры за один раз ).

- на Висте и 7-ке при выходе из игры выдается ошибка (просто игнорируйте)

- иногда (у меня на нетбуке) требует найти некий .dll (лечится скачиванием и установкой оного)

Опубликовано

Кстати, кавычки не надо, av = renpy.random.randint(1, 9) возврашает число, а ты его пытаешься сравнивать со строкой из одного символа.

Хотя хз, может и заработает, я не пробовал так.

Так я ещё только начинаю постигать renpy no jutsu и видимо не так понял из написанного в руководстве для начинающих.))

 

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

Опубликовано (изменено)

Radogast

Можно, через механизм быстрого сохранения.

 

Jacksom

Что, новелти доделали таки? Или ты на текущей? Я как-то пытался разобраться но ниасилил ибо поделка сыра как моя оболочка RenaiWorkshop для написания новелл на RenPy без программирования. Но я свою начал два дня назад, а новелти думал RIP.

 

RenaiWorkshop - это таже RenPy-новелла, только написанная на чистом питоне, а текст читается из txt-файла. Создание состоит в том чтобы набрать ресурсов, положить их в соответствующие папки (папки переименовывать нельзя), и по ходу чтения "на лету" подключать, украшая. На текущем этапе можно сделать что-нибудь вроде "Ночи Незабудок" путём добавления к тексту фоновых картинок и музыки. Только линейное, развилок пока нет.

 

В комплекте технодемка, перелистнуть - пробел, текст находится в файле text\start.txt.

UPD: пока не собирался выкладывать, но к слову пришлось, да и версия работоспособная.

 

MrStitch

Используй функцию renpy.notyfy(str(имя переменной)) - вывод уведомления в верхнем левом углу экрана. Посмотри какие значения принимают пересенные. Также попробуй сделать как я сказал, и есть ещё вариант, специально для этих случает - renpy.random.choice(['вариант1','вариант2']).

Изменено пользователем Элионт (смотреть историю редактирования)
Опубликовано

 

Jacksom

Что, новелти доделали таки? Или ты на текущей?

 

 

Скачивал почти год назад. Очевидно та же самая версия. На Висте не работала, но 7-ку уважает. С моим уровнем это самое то. Именно, что конструктор. Я подобными демо-недоделками отрабатываю технологии и возможности. Мне скрипты пока не важны. Ветки делает и ладно ))

Опубликовано (изменено)

I'm sorry, but an uncaught exception occurred.

 

While running game code:

File "game/script.rpy", line 242, in script

centered ""

UnicodeDecodeError: 'utf8' codec can't decode byte 0xd0 in position 56: invalid continuation byte

 

-- Full Traceback ------------------------------------------------------------

 

Full traceback:

File "D:\Documents and Settings\Admin\������� ����\�����\renpy-6.13.7\renpy\bootstrap.py", line 276, in bootstrap

File "D:\Documents and Settings\Admin\������� ����\�����\renpy-6.13.7\renpy\main.py", line 354, in main

File "D:\Documents and Settings\Admin\������� ����\�����\renpy-6.13.7\renpy\main.py", line 95, in run

File "D:\Documents and Settings\Admin\������� ����\�����\renpy-6.13.7\renpy\execution.py", line 267, in run

File "D:\Documents and Settings\Admin\������� ����\�����\renpy-6.13.7\renpy\bootstrap.py", line 451, in report_exception

File "encodings\utf_8.pyo", line 16, in decode

UnicodeDecodeError: 'utf8' codec can't decode byte 0xd0 in position 56: invalid continuation byte

 

Windows-XP-5.1.2600-SP3

Ren'Py 6.13.7.1646

A Ren'Py Game 0.0

 

Что не так?

 

Выдает когда пишу так : $ ui.image ("zadanie1.jpg", xpos = 0.557, yalign = 0.37, zoom = 0.25)

Изменено пользователем Radogast (смотреть историю редактирования)
Опубликовано

������� ����\�����

Во первых - без кириллицы в пути.

Во вторых - а зачем ui.image() если есть скрины? Хотя никто не запрещает, но используя класс ui многого что позволяют скрины не сделаешь.

Опубликовано
Уважаемы гуру. Хотелось бы набраться наглости и попросить код для миниигры, которая часто встречается в играх. Смысл такой в на экране быстро высвечиваются стрелки вправо влево вверх вниз в рандомной последовательности, а игрок должен успевать нажать соответствующую клавишу. Допустим 10 последовательностей. Ошибся или не успел нажать - проиграл, прошел все десять выиграл. Очень надо, т.к. на этом строится вся моя визуальная новелла. Сам, увы, пока сообразить, как это сделать не могу. Заранее спасибо.
Опубликовано

код для миниигры

 

Писать за тебя не буду, но материалы подкину:

1) Управление с клавиатуры - тут устаревший код, требуется некоторая модификация:

 

    # обработка нажатий клавиатуры для
   # выполнения своих, а не предусмотренных движком функций
   class KeyboardListener(renpy.Displayable):

       def __init__(self):
           renpy.Displayable.__init__(self)

       # This function listens for events.
       def event(self, ev, x, y, st):

           # We only care about keydown events.
           if ev.type != pygame.KEYDOWN:
               return
           
           # обрабатываем событие
           if ev.key == pygame.K_SPACE:
               renpy.notify("Нажата клавиша --пробел--")
               
           return

       # Return a small empty render, so we get events.
       def render(self, width, height, st, at):
           return renpy.Render(1, 1)

   # Create a Listener to actually listen for the code.
   keyboard_listener = KeyboardListener()
   
screen Keyboard_Listener:
   add(keyboard_listener)

label start:
   show screen Keyboard_Listener
    и далее по скрипту....  

 

2) Коды всех клавиш

Также требуется знание языка Python 2.7, иначе ты ничего не поймёшь из приведённого по этим ссылкам).

  • 2 недели спустя...
Опубликовано
Добрый вечер. Это снова я со своим нубским вопросом. В игре есть меню где каждый пункт запускает видео, но после видео игра заканчивается. Как сделать так что бы после видео игра не заканчивалась а возвращалась в меню? Побывал с метками, выдает ошибку.
Опубликовано

но после видео игра заканчивается

Скорре всего у тебя не стоит return в конце ветки с видео - скрипт ищет что дальше делать, не находит, и вываливается в главное меню.

А на будущее - слишком размыто проблему описал. А где код с видео, "пробование с метками" и какую ошибку при этом выдаёт? Сорри, шарить по мозгам чере веб-интерфейс не умею ^_o

  • 1 месяц спустя...
Опубликовано

Посидел вечерок и организовал таймер на версии Ренпи 6-12-2.Под спойлером полный код.

Создай новый проект и замени содержимое script.rpy содержимым спойлера.

 


define e = Character('Eileen', color="#c8ffc8")

init python:
   import thread,time
   
   # функция, которая будет запущена в другом потоке
   def timer():
       renpy.notify(u"Таймер запущен.")
       while True: # бесконечный цикл
           time.sleep(1) # ждём секунду
           persistent.timer_counter -= 1 # уменьшаем счётчик
           renpy.notify(u"%d"%persistent.timer_counter) # оповещаем пользователя
               
           if persistent.timer_counter == 0: # время почти вышло
               time.sleep(1) # последняя секунда
               persistent.timer_result = False # результат - не успели
               return
	
   # запуск таймера
   def start_timer(time):
       persistent.timer_counter = time # время в секундах 
       persistent.timer_result = True # результат Истина пока время не истечёт
       thread.start_new_thread(timer,()) # запускаем поток.
	
   # переход по результатам таймера
   def timed_jump(success,failure):
       # если успели
       if persistent.timer_result:
           persistent.timer_counter = 1 # фактически, это отключает таймер
           renpy.jump(success) 
       # если не успели
       else:
           renpy.jump(failure)
	
   # отключение таймера и переход, вне зависимости от результатов
   def no_timed_jump(destination):
       persistent.timer_counter = 1
       renpy.jump(destination)
    	
# Поехали!     	
label start:
   e "На следующий выбор вам будет дано ограниченное время."
   $start_timer(10) # запускаем таймер на 10 секунд
   menu timed_menu:
       "Выбирай мудро (и быстро)!"
       "Сесть на автобус":
           $timed_jump("MadeInTime","TooSlow")
       "Подождать другого":
           $no_timed_jump("WaitingAnotherBus")
           
   return

label MadeInTime:
   e "Вы успели."
   return

label TooSlow:
   e "Автобус ушёл."
   jump WaitingAnotherBus
   return    
   
label WaitingAnotherBus:
   e "Подожду другого, может хоть там свободные места будут."
   return    

 

Если что - обращайся.

 

А имеется ли возможность принудительного перекидывания в другой блок?

 

Ну например суть вот в чём:

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

 

Просто хочется проделать тот же фокус, что и в Сакуре Тайсен, но получается это только в версии 6.9.3 (хотя и коряво, ибо при таком принудительном перекидывании потом при выходе из игры появляется сообщение об утрате данных)

Опубликовано

3 секунды мало )) - за это время прочитать и кликнуть не успеешь.

А так - он уже в другой блок перекидывает, посмотри внимательней на последние строчки.

 

3 секунды сферическое число в вакууме :)

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

Опубликовано

Приветик всем, я совсем недавно начала знакомство с RenPy, и не совсем понимаю как мне поменять дизайн экранов настроек и сохранения.

Картинки в фотошопе нарисовала, код нашла. А вот куда вставить не знаю. Версия движка 6.9.3

 

init -2 python:
   layout.imagemap_load_save(
       "loadsave_ground.png",
       "loadsave_idle.png",
       "loadsave_hover.png",
       "loadsave_selected_idle.png",
       "loadsave_selected_hover.png",
       [
           (58, 26, 140, 103, "previous"),
           (140, 26, 227, 103, "page_auto"),
           (227, 26, 310, 103, "page_1"),
           (310, 26, 391, 103, "page_2"),
           (391, 26, 474, 103, "page_3"),
           (474, 26, 559, 103, "page_4"),
           (559, 26, 640, 103, "page_5"),
           (640, 26, 725, 103, "next"),
                              
           (32, 134, 271, 344, "slot_0"),
           (271, 134, 512, 344, "slot_1"),
           (512, 134, 754, 344, "slot_2"),
           ])
   

   style.file_picker_ss_window.xalign = 0.5
   style.file_picker_ss_window.yalign = 0.35
   style.file_picker_text_window.xalign = 0.5
   style.file_picker_text_window.yalign = .85    
   config.thumbnail_width = 125
   config.thumbnail_height = 93

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

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

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

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

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

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

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

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

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

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