- •Учебник по Ren’Py
- •Начало работы
- •Запомните
- •Учимся работать со сценарием
- •Как правильно писать диалоги персонажей.
- •Домашнее задание
- •Создаем меню выборов.
- •Создаем свои метки
- •Делаем ссылки на имена персонажей
- •Домашнее задание
- •Именам цвет
- •Переменные и с чем их едят
- •Домашнее задание
- •Работа с текстом. Учимся разбирать другие приложения.
- •Домашнее задание
- •Вставляем изображения в новеллу. Фоновый рисунок.
- •Спрайты
- •Как определить размер спрайта для вашего размера экрана
- •Координаты спрайтов на экране
- •Переходы и спецэффекты Переходы
- •Зрелищные переходы ImageDissolve
- •Эффекты перемещения спрайтов Move transition (в основном на спрайты)
- •Переходы CropMove(эффективней менять ими фон) или режим слайда.
- •Эффект AlphaDissolve (герой подглядывает за персонажем)
- •Ваше задание на сегодня
- •Учимся грамотно вызывать прыжки к меткам.
- •Учимся создавать текст на экране и научимся определять координаты ее
- •Координаты изображения
- •Анимация
- •Как вставлять мини игры в вашу игру
- •Метка splashscreen
- •Изображение splashscreen
- •Создаем инсталлятор
- •Много всяких полезных Renpy-разработчику фишек и плюшек в одном месте
- •Заключение
- •Всем спасибо! Что уделили моему маленькому учебнику внимание.
Домашнее задание
Попробуйте сделать для каждого выбора по 2 концовки, одну плохую и хорошую.
Делаем ссылки на имена персонажей
Теперь каждому персонажу даем свой номер, или ссылку на него, через которую можно будет его вызвать простым сокращением. Выглядит оно так
define rish = Character('Рыжий')
где rish – ссылка на имя Рыжий, и оно пишется только на английском
'Рыжий' – если вы обратили внимание, Имя персонажа пишется в одинарных кавычках. (Для вызова этой кавычки переведите клавиатуру на английскую раскладку, и нажмите на клавишу э)
И давайте дадим всем персонажам имя, для удобства нам потребуется создать новый файл all_resourse.rpy и сохранить его, и ввести следующие строки
init:
###Ваши персонажи
define rish = Character('Рыжий') ### Лидер банды
define gol_1 = Character('Шестерка 1') ### Его шестерка
define gol_2 = Character('Шестерка 2') ###Очередная шестерка
define sadshi = Character('Анжи) ### Детдомовец, главный герой
Теперь разбираем что мы тут написали.
init: -пишется для того что бы программа видела файлы и скрипты написанные здесь
###Ваши персонажи - ### тремя решетками пишут ваши комментарии внутри сценариев, и программа их не видит.
А одной # пишут изменения в сценарии, которые можно будет со временем добавить, просто удалив решетку.
Домашнее задание
Теперь, когда мы научились делать ссылки на имена персонажей, замените везде имена на эти ссылки и у вас получится следующее
Именам цвет
Сохранив проект вы заметили, что имена у героев одного цвета(голубого), так почему бы не сделать их цветными?
Делается это просто здесь в define …. = Character('…..') после русского имени пишем добавив color="здесь номер цвета" и у нас получится
define rish = Character('Рыжий', color="#008000")
"#008000" – рыжий цвет
Коды цветов можно получить в фотошоппе
И давайте остальным пропишем цвета
define rish = Character('Рыжий', color="#008000") ### Лидер банды
define gol_1 = Character('Шестерка 1',color="ffff99") ### Его шестерка
define gol_2 = Character('Шестерка 2',color="9966ff") ###Очередная шестерка
define anshi = Character('Анжи',color="66ff66") ### Детдомовец, главный герой
Посмотрите в программе, что у вас получилось.
Переменные и с чем их едят
Что бы сделать секретную концовку в игре нужно ввести переменные. Для этого нам следует после label start: Прописать переменную и что она равна 0
label start:
$ udacha = 0
Далее в тексте выбора нам нужно будет поставить +1 от выбора, и мы получим
Далее нам нужно прописать в самой игре, что произойдет от выбора его. Последствия пишутся через if имя переменной Далее следует поставить условие, например больше, либо равно 1 или меньше равное 0 , оно будет выглядеть так
А теперь запишите в проект то что на картинке сверху, и вы увидите как удобно пользоваться переменными.
label gruppa_tatu:
if udacha <=0:
"Анжи резко развернулся и побежал от банды в противоположную сторону"
"Банда была готова к тому, что он побежит, и погнались за ним"
"Продолжение следует"
if udacha >=1:
"Пробежав два коридора и свернув в третий, взял заготовленную балку из дюрали, и когда подбежал Гек ударил его по шее, потом начал бил ногами"
Это еще не конец возможностям переменных.
Если в игре вы захотите поставить 2 и более условий, для скрытой концовки,или прописать локацию по дням, то оно примет следующий вид.
if guard == 0 and day == 1:
где переменные guard и day По смыслу: if guard == 0 and day == 1: стража 1 день, if guard == 0 and day == 2: стража 2 день, if guard == 1 and day == 2: чето случилось со стражником 2 день(например поговорили с ним и он вас гонит, после повторного обращения к нему. Что бы добавить к переменной значение +1 или -1 пишут так $ guard += 1 или $ guard -= 1
А and является связующим звеном между 2 переменными
== означают что они должны быть равны тому то Если нужно что бы значение переменной было больше 4 или меньше 2, то пишут if guard <= 2 and day >= 4: (например стражник спился значение 1 или 0, и это событие происходит после 4 дня, почка отказала и он умер)
label hata_guard: ….if guard == 0 and day == 1: …….."Дай денег- выпить хочу" ….if guard == 0 and day == 2: …….."Дай еще денег" ……..$ guard += 1 ….if guard == 1 and day == 2: …….."Вы заходите обратно в дом и видите пьяного спящего стражника" ….if guard <= 2 and day ==3: …….."Стражник ушел в запой и вы спокойно проходите в его дом" ….if guard <= 2 and day >= 4: …….."Стражник умер – почка отказала и вы спокойно обходите его труп " Так же переменным можно задавать значение, например имя который захочет выбрать игрок: label start: …."Ты кто? Мальчик или девочка?" …."Я еще не определился…" ….$ name = renpy.input(_("А как тебя зовут то...?")) or_("Никак") …."[name], зовут тебя так?"###и в тексте вместо [name] будет введенное имя ….$ renpy.block_rollback() ###что бы нельзя было вернуться назад …."И я бы забыл, как меня зовут, с таким то именем…"
Можно и так
А что бы у этой переменной было имя как у персонажа, прописать нужно как ссылку имен и получим: define mc1 = Character ('[name]' ) и в тексте меток пишем mc1 "Текст" ###
Теперь давайте разберем что тут записанно. label name_input: - имя метки, можно любое имя взять(name_input), но только на английском. ….$ name = renpy.input("А как тебя зовут то...?")- мы переменной ($ name которую можно на свой вариант на английском) задаем значение(=) ввод с клавиатуры(renpy.input) а ("А как тебя зовут то...?")- значит вопрос в текстовом боксе …."[name], зовут тебя так?" – пример использования имени в тексте ….$ renpy.block_rollback() – что бы игрок не мог вернуться назад и поменять свой выбор имени
В общем, есть условие, оно задаётся через IF, Есть вариант со вторым условием, которое проверяется, если первое не подходит, оно задаёся через ELIF
И есть вариант если не подходит ничего из этого ELSE IF cvet == 'белый': ...действие 1 ELIF cvet == 'чёрный': ....действие 2 ELIF cvet == 'красный': ....действие 3 ELSE: ....действие если не 1 по 3 Запомните так же. Если логика подразумевает (все что угодно кроме), то логическое событие должно быть ELSE!
