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

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


000

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

Vicente, вы точно ответили на 5 вопросов правильно? Не на 4, не на 6, т.к. у вас стоит условие <if victory == 5>.

Возможно в коде неправильно организованы jump'ы... Вообще, зачем прыгать по блокам? Можно задать вопросы подряд, разбавив неким текстом между менюшками...

label start:
   $ victory = 0 # начальное значение
   menu:
       "Первый вопрос":
            "Правильный ответ":
                 $ victory +=1
            "Неправильный ответ":
                 pass
   menu:
       "Второй вопрос":
            "Правильный ответ":
                 $ victory +=1
            "Неправильный ответ":
                 pass
   menu:
       "Третий вопрос":
            "Правильный ответ":
                 $ victory +=1
            "Неправильный ответ":
                 pass
   menu:
       "Четвертый вопрос":
            "Правильный ответ":
                 $ victory +=1
            "Неправильный ответ":
                 pass
   menu:
       "Пятый вопрос":
            "Правильный ответ":
                 $ victory +=1
            "Неправильный ответ":
                 pass
   "Вот и все с вопросами. Теперь узнаем результат..."
   jump result

label result:
   if victory >4:
       "Похоже, что это победа...))"
   else:
       "Всего %(victory)d правильных ответов, а надо - 5."

В процессе можно использовать Developer tool (Shift + d - язык должен быть английским) - в открывшемся меню выбрать Variable Viewer (просмотр переменных). Там будут написаны текущие значения игровых переменных.

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

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

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

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

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

Использовала джамп, лейбл и элз и все получилось http://smayly.net.ru/gallery/anime/pictures/RedFox_1/3.gif

В процессе можно использовать Developer tool

Очень полезная штука. Надеюсь она не работает в финальной версии. А то как-то по-читерски это выглядит.

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

Очень полезная штука. Надеюсь она не работает в финальной версии. А то как-то по-читерски это выглядит.
Дык, отключать надо...))

http://www.renpy.org...Developer_Tools

http://www.renpy.org...onfig.developer

http://www.renpy.org...asing-your-game

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

А видео для вставки должно быть какие-то особенное? А то у меня игра зависает перед тем как оно должно воспроизвестись(AVI подогнано под размер окна(800х600))

 

Как можно ввести текст в центре на весь экран?

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

Как можно ввести текст в центре на весь экран?

Что ты имеешь в виду под вопросом "ввести текст в центре на весь экран"?

Если просто вывести надпись в центре экрана, то это делается так:

 

 

centered "Текст в центре экрана"

 

 

Или тебе нужно что-то более сложное?

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

Какую кодировку и форматы поддерживает ренпи?

Movies: OGG Theora, MPEG 4, MPEG 2, MPEG 1

http://www.renpy.org/why.html

 

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

Т.е. видео не воспроизводится вообще? (или через полчаса все-таки оно появляется?) Есть ли сообщение об ошибке?

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

С вставкой видео разобралась, стоило только сменить конвертер.

Как-то можно сделать чтоб видео по клику нельзя было остановить?

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

play movie "user_hate.ogv"
$ renpy.pause(15.0, hard=True)

Должно получиться (длительность паузы должна соответствовать длительности видео, а <hard=True> делает невозможным прервать паузу кликом мыши).

 

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

$_game_menu_screen = None

перед видео, и

$_game_menu_screen = "save_screen"

сразу после паузы.

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

Здравствуйте.

 

Я интересуюсь созданием своего меню и в связи с этим у меня имеются вопросы по его реализации:

1) Правильно ли я понимаю, что используются два файла с меню в формате jpg? На первом есть все отметки выделенной области, а на второй только само меню и когда мы выбираем конкретный пункт менюшки первого файла, высвечивается фрагмент с "знаком выбора" из второго, а интерактивная область для нажатия кнопок задаётся четырьмя координатами?

2) Код расположенный по ссылке размещается в конце файла option?

3) mm_root надо предварить знаком "#"? Если да, то только mm_root?

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

to Vicente

Сначала идет видео(оно пропускается), а затем пауза. Одновременно они не работают.
?!

Что значит "пропускается"? Попробовал сам (на 6.12.1, 6.10.1, 6.9.3) - видео воспроизводится, кликом мыши оно не прерывается, но исполняются следующие строки скриптА. Пауза как раз и предотвращает исполнение этих строк (длительность паузы должна соответствовать длительности видео).

Если у вас не так, то опишите поподробнее, плиззз.

 

to MrStitch

1) Наоборот - первое изображение (ground) неактивное меню, а второе (selected) - где все пункты нарисованы активными. Интерактивная область задатся координатами (x,y верхнего левого угла области) (x,y правого нижнего угла области) - для каждой кнопки меню.

2) Код может располагаться в любом блоке init: ($ layout.imagemap_main_menu ...) либо init python: (layout.imagemap_main_menu ...) соответственно. Для более удобного редактирования его можно разместить в файле options.rpy.

3) Строки кода исполняются в строго определенной последовательности. Даже если не использовать знак "#", а поместить <layout.imagemap_main_menu ...> в конец файла options.rpy, то последней исполнится эта строка и она-то и будет определять вид меню. Если расположить ее в другом блоке init:, то он должен быть с индексом больше -2, т.е. init -1:, или init:, или init 120: и т.д., т.к. в options.rpy используется блок init -2: (суть в том, что бы этот код исполнился после стандартного кода, который прописан по умолчанию).

 

Пы.Сы. Если используете Рен'пи версии 6.12.х, то там все меню выполнены в виде экранов (screens), с возможностью их редактирования. Таких возможностей на порядок выше (код для всех экранов, используемых по умолчанию, находится в screens.rpy).

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

Что значит "пропускается"?

Это значит, что по клику оно прекращает воспроизводится, а мне нужно чтобы играющий обязательно досмотрел ролик до конца.

длительность паузы должна соответствовать длительности видео

Длительность ролика 1:29 я пишу значения в секундах. Это правильно?

 $_game_menu_screen = None
   $ renpy.movie_cutscene("Gem.mkv", stop_music=True)
   $_game_menu_screen = "save_screen"
   $ renpy.pause(89.0, hard=True) 

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

$ renpy.movie_cutscene("Gem.mkv", stop_music=True)
?!

В моем примере:

   $_game_menu_screen = None

   play movie "Gem.mkv"
   
   $ renpy.pause(89.0, hard=True) 
   $_game_menu_screen = "save_screen" # "включим" правый клик после просмотра видео

 

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

Подскажите как правильно импортировать мини-игру в новеллу.

Так?

init:
   
   $ import aliens

label start:
   $ renpy.free_memory()
   $ score = aliens.main()

И куда нужно скопировать данные игры(картинки и т.д)? Нужно ли создавать отдельную папку или все нужно кидать туда же, где все данные новеллы?

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

Ммм, сам никогда не пытался делать мини-игры при помощи renpygame...

Если вы хотите использовать игру с инопланетными тарелочками в своей ВН, то надо скопировать в папку *ваш_проект/game* файл "aliens.py" (где находится сам код мини-игры), для игры нужны картинки и звуки, которые должны располагаться в папке *ваш_проект/game/data* (так указано в коде мини-игры, если изменить название папки, то выдаст ошибку, если только не полезете менять код игры). Также, стоит скопировать папку "renpygame", которая есть в комплекте с демо-игрой, и положить ее в папку *ваш_проект* (рядом с "game"), чтобы фреймворк мог работать (название папки не менять, иначе выдаст ошибку).

В общем, все как в демо-игре фреймворк'а...))

 

Ваш код должен сработать - сперва импортируем игру (в блоке init:), а затем, строкой <$ score = aliens.main()> запустим функцию, определенную в игре как "main".

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

Отлично, игра запустилась. Вот только во время мини-игры размер экрана уменьшается. Разрешение как-то можно поменять?

 

Теперь проблема с итогом игры. Надеялась на этот код:

 if score > 10:
         jump gam # продолжение новеллы
 else:
        "game over"

Но не получилось. Как это правится и возможно ли сделать так чтобы, например, после 10 тарелок (у меня не тарелки, правда) игра автоматически заканчивалась и снова переходила на новеллу?

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

(у меня не тарелки, правда)
Эт' понятно...))

 

Для настройки игры надо менять ее код. Откройте файл "aliens.py" в jEdit или любом другом эдиторе.

В самом начале:

#game constants
SCREENRECT 	= Rect(0, 0, 800, 600) # размер игрового экрана (возможно придется откорректировать размер фоновой картинки)

 

Далее ближе к концу скрипта, в самой функции, которая описывает игру есть строка

while player.alive():

- это основной игровой цикл (пока игрок "жив" игра продолжается).

Меняем условие на что-то типа

while player.alive() and SCORE < 10: # в коде игры использована переменная SCORE (большие буквы) 

Тогда игра будет работать пока игрок "жив" и настрелял меньше 10 тарелочек (которые на самом деле уже не тарелочки).

 

Когда игра закончится, то можно вставить код

if score <10: # т.к. результат игры мы сохраняем в переменную score (<$ score = aliens.main()> - помните?)
   "Loooser... kekekeke"
   jump play_again_until_beat_this_game
"С игрой покончено, можем продолжать."

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

Когда увеличила размер игрового экрана, то снаряды перестали долетать до персонажа. Как удлинить их полет? Изменено пользователем Vicente (смотреть историю редактирования)
Ссылка на комментарий
Поделиться на другие сайты

Ммммм... Продолжим "издеваться" над кодом в файле "aliens.py":
class Bomb(pygame.sprite.Sprite):
... ... ...
    	if self.rect.bottom >= 590: # надо поставить значение в пикселях, достигнув которого, бомба взорвется (0 - это самый верх игрового поля)

class Score(pygame.sprite.Sprite):
... ... ...
       self.rect = self.image.get_rect().move(10, 550) # положение надписи со счетом

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

Добил свою...

фанфик на основе "Меланхолии". Короткая, на основе конструктора "Novelty". Фоны брал просто из сети и из сериала.

Взять здесь.

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

to Jacksom: Не совсем понял: все персонажи должны были быть между собой знакомы, даже если у главного героя "проблемы с памятью", то остальные должны его помнить и относиться к нему как к знакомому... У меня сложилось впечатление, что никто не считает ГГ членом "команды СОС", хм.
Ссылка на комментарий
Поделиться на другие сайты

Здравствуйте.

 

Недавно столкнулся с такой проблемой когда решил перебраться на новый ноут с предустановленной windows seven x64. Сам Ren'py стартовал вопреки моим опасениям, а вот редактор запускаться наотрез отказался. Можно ли как-нибудь решить эту проблему без установки движка в виртуальную машину? Может быть есть альтернативные редакторы?

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

to Jacksom: Не совсем понял: все персонажи должны были быть между собой знакомы, даже если у главного героя "проблемы с памятью", то остальные должны его помнить и относиться к нему как к знакомому... У меня сложилось впечатление, что никто не считает ГГ членом "команды СОС", хм.

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

Если возник вопрос, то поищите сам фанфик "Призрак заброшенного храма", там дается часть ответов.

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

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

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

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

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

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

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

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

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

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

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