История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Как правильно писать диалоги персонажей.

2017-09-27 2848
Как правильно писать диалоги персонажей. 5.00 из 5.00 3 оценки
Заказать работу

Вверх
Содержание
Поиск

Учебник по Ren’Py

Начало работы

Для начало работы вам необходимо будет скачать Ren’ру http://www.renpy.org

и установить ее, только смотрите что бы папка сохранения была не на русском языке(говорят скоро будет обновление где эта проблема будет исправлена).
Самый оптимальный вариант создать в диске С папку под номером 1 (мне так удобней) и получим C:\1\renpy-6.99.11.3-sdk (смело скачивайте самую последнюю версию)

Запускаем проект. У нас запустился лаунчер, и он на английском. Что бы его перевести на русский язык заходим в preferences как показано на картине И выбираем русский язык и выходим в главное меню программы

Далее разъясняю где что на экране программы

1) Проекты. Здесь находятся все ваши и сторонние проекты.

2) Добавить новый проект. Из названия и так все ясно.

3) Открыть папку. Из названия и так все ясно что она открывает папки выбранного проекта

4) и 5) Основные файлы с которыми мы будем работать при создавании новеллы

6) Навигация по Сценарию. Нажав на нее вы с легкостью сможете найти ваши метки, ссылки, скрипты…

7) Запустить проект.Из названия и так все ясно.

 

 

Для ознакомления, что вообще представляет собой Ren’py, какие есть у него возможности, запустите программу обучения. У вас запустится новое приложение, которое так же через preferences можно перевести на русский язык.

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

Для этого нажмите < Добавить новый проект>

И у вас высветится окно выбора

1) New Gui interface – новый графический дизайн

2) Legacy Theme Interface – старый графический дизайн

Новый более удобней и симпатичней смотрится, чем старый дизайн. Но когда вы перейдете к редактированию главного меню загляните в контакт и найдите там сообщество Ren’Py. В сообществе откройте видео, и там вы найдете видео уроки как создавать меню игры и другие полезные материалы.

 

Запомните

Всегда в последнюю очередь создавайте свое главное меню. В процессе создания новеллы у вас может разительно поменяться: сюжет, герой, фон, художник и вам ее придется полностью переделывать. Создавая новеллу с меню вы тратите время зря, которая пошла бы на пользу создания вашего проекта. И возможно, вы бы успели создать 1 главу, пока вы создаете только меню. И после того как будет завершена 1 глава можете смело создавать меню, т.к. некоторые проекты создаются больше года, и для привлечения аудитории(покупателей, если вы делаете новеллу платной для Стима) создают бэта версию.

 

Вы выбираете Gui, и нажимаете далее.

У вас программа спросит имя проекта,т.к. вы впервый раз знакомитесь с программой назовите его просто Test

Дальше у вас программа спросит разрешение экрана, выбирайте на свое усмотрение. Но чем больше разрешение экрана – тем больше она весит, я выбрал 1280 на 720(стандарт как говорится)

Дальше у вас программа спросит цветовую тему для проекта. Как говорится у каждого свои вкусы, и нажимаете далее.

Вот у вас появился ваш первый проект.

 


Учимся работать со сценарием

 

Нажимаем где Редактировать сценарий > Все файлы сценариев

Т.к. вы в первый раз запускаете программу она у вас спросит, через какую программу читать файлы сценариев. На ваше усмотрение, но мне удобнее через Jedit и на ней я буду проводить уроки.

Скачали текстовый редактор, и у вас запустилось окно. Сейчас расскажу где тут что

1) Панель инструментов. Там, у программы находятся все инструменты для работы с текстом.

2) Файлы сценариев, вся основная работа происходит в них

3) Диалоговое окно, в нем мы будем вводитькоманды

 

4) Строка. Когда вы допустили ошибку в написании кода, программа покажет, на какой строке у вас ошибка.

Далее переключите вашу клавиатуру на английскую раскладку. Скрипты и метки программа читает только на английском.

Далее, зайдите в файл options.rpy и найдите в нем 116 строку

default preferences.text_cps = 0

измените его на

default preferences.text_cps = 30

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

 

 

Создаем меню выборов.

Сам жанр новелл состоит из выборов в игре. От выбранного пути будет зависеть судьба персонажа.

Меню выборов создается меткой menu: Давайте поможем парню Анжи сделать выбор

…."Дальше говорить было не зачем."

…."Что вы выберите?"

….menu:

…….."1) Примите их условия":

…………"Анжи" "Мне ничего не остается, кроме как согласиться с ними"

…….."2) Пошлете его в *опу":

…………"Анжи" "Держите меня Семеро!"

…….."3)Попытаетесь сбежать":

…………"Анжи" "А ты попробуй догони меня!"

Теперь разбираем, что мы тут написали

Мы в метке label start:

написали метку menu: после которой, идут пункты выбора.

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

И теперь вместо 4 пробелов нужно писать 8 (т.к.: обозначает что код задействуется в метке(menu: значит программа прочитает в метке menu: и после: нужно +4 пробела ставить на следующей строке)Мы выбрали вариант, теперь нужно варианту прописать действие, для этого в конце варианта ставим: и текст, действие варианта на следующей строки будет не с 8 пробелов, а с 12 т.к. мы поставили:

Создаем свои метки

Создавая пункты выбора, вы задаете себе вопрос. А как же на 50 часовых новеллах так печатают? Ведь получается что там больше 100 выборов…. Это сколько часов придется листать что бы найти ошибку на 976 строке у которой около 700 пробеллов…. Что бы облегчить себе жизнь, вы создаете метки. Делается это так:

1)Создаете файл в текстовом редакторе. Панель инструментов Файл>Новое>

И там же этот файл сохраняете, только название берите английское, и что бы заканчивалось на .rpy Я создал файл 1_glava.rpy

 

 

Теперь давайте вернемся к выборам Анжи. И напишем команду на переход к метке jump….c именем метки.

….menu:

…….."1) Примите их условия":

…………"Анжи" "Мне ничего не остается, кроме как согласиться с ними"

………… jump lox

…….."2) Пошлете его в *опу":

…………"Анжи" "Держите меня Семеро!"

………… jump battle

…….."3)Попытаетесь сбежать":

…………"Анжи" "А ты попробуй догони меня!"

………… jump gruppa_tatu

Обратите внимание, в имени после команд, не должно быть пробелов jump gruppa_tatu,

А так же в кнопке выбора ставится: иначе система не поймет зачем в кнопке выбора("3)Попытаетесь сбежать":) лишняя строка и действия с текстом("Анжи" "А ты попробуй догони меня!")

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

 

В новом файле пропишем эти метки, и что там будет происходить.

Сначала строки (без отступов) пишем

label lox:

label battle:

label gruppa_tatu:

Return

return – обозначает конец метки любой. Если ее не записать то она автоматически запустит 2 метку которая идет после нее. Что бы такого не произошло, в конце метки ставят return

 

label lox:

….Текст

….return

label battle:

И у нас после метки lox, из за return, не запустится метка battle, когда закончится текст.

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

И давайте пропишем последствия от выбора.

label lox:

…."Анжи стал их ней дойной коровой"

…."И когда у него не было денег им вернуть их, его жестоко избивали"

…."Он терпел больше года, пока не вытерпел однажды, и их избил трубой"

…."2 парней стали инвалидами, и Анжи положили в психлечебницу"

…."Плохая концовка"

…. return

label battle:

…."Один раз уступлю, никогда не отстанут"

…."И Анжи ударил в пах рыжему, т.к. он был самым опасным из этой тройки"

…."Потом ударий ногой в колено, тому, что справа. "

…."И пока третий стоял, думал, Анжи побежал в коридор"

…."Рыжий" "Гек, хватай его. Убью гада. Заморыш... по яйцам бить нечестно. Урою, урою, сгною на нижних уровнях"

…." Анжи" "А втроем на одно - значит честно"

…."Убегая подумал Анжи"

…."Продолжение следует"

…. return

label gruppa_tatu:

…."Анжи резко развернулся и побежал от банды в противоположную сторону"

…."Банда была готова к тому, что он побежит, и погнались за ним"

…."Продолжение следует"

….return

Вот как будет выглядеть в сценарии проекта

Домашнее задание

Попробуйте сделать для каждого выбора по 2 концовки, одну плохую и хорошую.

Именам цвет

Сохранив проект вы заметили, что имена у героев одного цвета(голубого), так почему бы не сделать их цветными?

Делается это просто здесь в 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!

 

Спрайты

Спрайты – это изображения персонажей.

Давайте добавим нашим персонажам спрайты

### Спрайты

image rish_1 = "images/sprite/1.png"

image gol_1_1 = "images/sprite/3.png"

image gol_2_1 = "images/sprite/2.png"

Переходы и спецэффекты

Переходы

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

Теперь давайте рассмотрим сами эти переходы. Для быстрого ознакомления, пройдите в программу обучения на вашем ренпае. Она находится в разделе переходы. Там наглядно описывается как они пишутся в самой игре

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

 

 

Вот пример самого часто используемой команды:

Pause.5

Теперь разберем что тут записано
scene logo –вызываем изображение, текст, и т.д
with – Вызов перехода
Dissolve – имя перехода(!Обратите внимание! В питоне есть несколько стандартных переходов которые он знает, но вдруг вы столкнетесь с интересным для вас переходом в другом проекте, то там скорее всего будет где то записана в сценарии имя этого перехода, и что бы у вас она так же заработала вам так же потребуется переписать ее себе в свой сценарий (пример слеповой гранаты которую я позже выложу пример)
(.5)

pause.5 – это время за который произойдет данный переход(это пол секунды)

 

 

With Dissolve(1.0)

pause 1.0 – 1 секунда

 

Пример кода с проекта обучения

With dissolve ### переход

With Pause(1) ###пауза

With dissolve ### переход

With fade

Эффект чем то похож на закрывание глаз. Вспышка, а потом переходит как dissolve к новой сцене. Им можно создать эффект включения лампочки. Для этого вам нужно создать переменную с указание ее цвета(в моем случае белый свет)

label start:

$ flashbulb = Fade(0.2, 0.0, 0.8, color='#fff')

###имя перехода flashbulb, задаем цвет белый color='#fff'

И где то в игре

With move

show rish_1 at center

With move

 

Здесь мы видим как рыжий переходит справа на центp

7) with Pause(1) пауза

Спросите, зачем нужна пауза? Допустим ваш герой провел обычный ничем не примечательный день(и показываем сцены дом, школа, столовая, домой) если между каждой сценой не ставить паузу, то программа эти сцены пропустит, так, что вы не успеете ничего увидеть. Мгновенно практически. А если между каждой сценой поставить паузу….то только щелчком мышки поменяются сцены.

 

Пример кода с обучения

With dissolve ### переход

With Pause(1) ###пауза

With dissolve ### переход

 

 

 

With pic

и эффект закрытых глаз готов

Не удачный пример, но суть вы поняли этих переходов

Эффекты перемещения спрайтов Move transition
(в основном на спрайты)

Ранее мы изучали переход with move и как поменять положение персонажа на экране.

Теперь давайте перейдем к командам move более подробно.

1) with moveoutleft -персонаж делает что то слева

hide rish_1

with moveoutleft - спрайт рыжего исчез влево(hide – убрать)

 

и

 

show rish_1

with moveoutleft - рыжий появился слева и встал посередине (show – вызвать спрайт, и мы не указали его позицию, поэтому автоматически он отправился на середину)

 

И с другими переходами with move….. все так же

2) with moveinbottom – персонаж что то делает снизу

 

3) with moveinright - персонаж что то делает справо

4) with moveintop -персонаж что то делает сверху(спрайт вверх ногами)

Xanchor.5

Yanchor.5

parallel:

Zoom 0

Linear.5 zoom.75

Pause 2

Linear 1.0 zoom 4.0

parallel:

Xpos 0.0 ypos.6

Linear 1.5 xpos 1.0

Linear 1.0 xpos.5 ypos.2

Pause.5

Repeat

define alpha_example = AlphaDissolve("alpha_control", delay=3.5)

Внизу полу прозрачное изображение(шар почти прозрачен, можно и замочную скважину заделать…..мол из шкафчика подглядывал, но лень делать ее)

Выше картинка полу прозрачная

Далее, нам потребуется создать scene black оно будет старым изображением,

Новым будет фон, или спрайт персонажа или все сразу вместе. И получим вот что

Scene black

With dissolve

Scene komnata

show rish_1 at center

with alpha_example

Модифицируя alpha_example в init’ e можно создать кучу эффектов. И даже мини игру. Сейчас мне лень писать ее, но выложу ее суть. В конце, когда игра завершена предложите угадать персонажа в купальнике, и через alpha_example покажите фигуру, кроме лица и выбор кто это за персонаж.) идеей послужила аниме Жаркое лето, в конце этой анимешки эта мини игра и там такой ржачный сюрприз)

 

Ваше задание на сегодня

Align (.08,.05)

text ": [money]":

Align (.17,.07)

картинка монет а в игре дописываем

 

label start:

$ day = 1

$ money = 1

Show screen kalendar

Show screen cash

$ udacha = 0 и т.д.

 

Кнопки


Что бы отобразить кнопку в игре, ее требуется отобразить сначала в screen, а потом вызывать ее в игру.

Есть 2 вида кнопок imagebutton (изображение, пример в игре найти надо картинку девушки и через него кнопка-девушка прописывается) и textbutton (сухой текст, нажав на которую мы перейдем куда то)


Imagebutton

 

Граф кнопка имеет примерно такую структуру

Screen vasja: ###ссылка кнопки
….imagebutton: ###Кнопка

……….align (0.5, 0.5)### ее координата

………..idle "bin.png"### изображение 1 в покое

…………hover "bin.png"### изображение 2 при наведении

…………action Hide ("gruppa_tatu") ### кнопка должна что-то делать, иначе она не будет закрывать собой кнопки на заднем плане, и их можно будет нажать "через" картинку. В кавычках мы прыгаем в метку(gruppa_tatu)

…………focus_mask True ### только непрозрачная часть кнопки будет активна - т.е. мы сможем взаимодействовать с задним планом в том месте, где картинка прозрачна

И в метке старт вызываем call screen vasja или show screen vasja в зависимости от того что вам нужно от этой кнопки

 

 

Textbutton

Все аналогично предыдущей кнопки

Screen vasja:

textbutton "X" action [Hide("binoculars"), Hide("back_view") ] yalign 0.0 xalign 0.5

или

textbutton "X" action Hide("gruppa_tatu") yalign 0.0 xalign 0.5
в метке старт вызываем call screen vasja или show screen vasja в зависимости от того что вам нужно от этой кнопки

 

Координаты изображения

Ранее мы умели прописывать координаты спрайтов(at center и т.д) Но допустим нам требуются именно точные координаты(как например кнопкам) тогда (at center и другие) не подойдут нам.


Для этого у нас есть короткие команды
xpos 500 ypos 500 – точные координаты

pos=(475, 50)

xalign 0.5 yalign 0.5 -% положение координаты на экране(0.5 половина на изображении)

 

Теперь что значит х и у
Геометрию все помнят?

У – верх низ

Х – право лево

Если у или х отрицательное значение значит за границей полей изображения

Как их прописывать эти координаты?

1) Как анимацию алт

image pos = "target1.png"

потом в

label start:

show pos:

xanchor 0.5 yanchor 0.5 xpos 0.5 ypos 0.5 ### (ровно посередине экрана)

 

 

2) Обычным способом

textbutton "X" xpos 100 ypos 200 action Hide("gruppa_tatu ")

А как быть если нужно на изображении сделать якорь, как тут?

Делается это командой anchor

image anchor = "target2.png"
image logo blue = "logosolid.png"

в метке старт прописывается
show logo blue: ###”Эйлин

Xpos 300 ypos 100

Show anchor: ###Крестик

Xanchor 0.5 yanchor 0.5

Xpos 300 ypos 100

With dissolve

Xpos 300 ypos 100

show anchor:

Xanchor 0.5 yanchor 0.5

Xpos 400 ypos 100

With dissolve

 

e "The second position we care about is the anchor. The anchor is a spot on the thing being positioned."

e "For example, here we have an xanchor of 0.0 and a yanchor of 0.0. It's in the upper-left corner of the logo image."

show anchor:

Linear.5 xpos 500

e "When we increase the xanchor to 1.0, the anchor moves to the right corner of the image."

show anchor:

Linear.5 ypos 400

e "Similarly, when both xanchor and yanchor are 1.0, the anchor is the bottom-right corner."

show pos:

Xanchor.5 yanchor.5

Xpos 600 ypos 400

e "To place an image on the screen, we need both the position and the anchor."

show logo blue:

Linear.5 xpos 400 ypos 100

show anchor:

Linear.5 xpos 600 ypos 400

И получается

Xalign

show logo blue:

Linear.5 xalign 0.5

логотип посередине экрана

 

show logo blue:

Linear.5 xalign 0.0

а теперь он слева

 

show logo blue:

linear.5 xalign 1.0

 

Теперь справа тоже самое и с у высотой его

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

Музыка

Как добавить в проект?

Делается это просто

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


play music "rock.mp3" fadeout 1

queue music "pop.wav"

Теперь разберем что тут записано

Play – запуск

Music – канал постоянный

"rock.mp3"- имя файла и путь его

fadeout 1 – текущая музыка затухнет перед следующей музыкой

queue- запустить песню на указанный канал после проигрыша предыдущей песни

Что бы остановить музыку пишется

Stop music fadeout 1

Если вам требуется, что бы музыка играла 1 раз(например крик, или стук в дверь) то вводится команда

play sound "ku-ku.mp3"

Вы так же можете поставить queue на канал sound но оно будет 1 раз играть.

queue play sound "ku-ku.mp3"

queue play sound "ku-ku.mp3"

queue play sound "ku-ku.mp3"

 

Что бы вам зарегестрировать свой канал(например что бы кнопки при наведении звучали)

Вам потребуется немного поработать с питоном

В файле screens.rpy в самом конце напишите

init python:

renpy.music.register_channel("test_one", "sfx", False)

renpy.music.register_channel("test_two", "sfx", False)

renpy.music.register_channel("test_three", "sfx", False)

renpy.music.register_channel("test_four", "sfx", False)

renpy.music.register_channel("test_five", "sfx", False)

renpy.music.register_channel("test_six", "sfx", False)

Далее когда вы пишите кнопку вы в нее добавляете канал

textbutton "X" xpos 100 ypos 200 action [Play("test_six", "Click3.wav"),Hide("gruppa_tatu")] hovered Play("test_one", "menu_click_01.ogg")

Теперь разберем что тут записано

textbutton "X" xpos 100 ypos 200 action – начало большинства кнопок

Play("test_six", "Click3.wav"), -музыка при нажатии на канале test_six( для нажатия достаточно 1 канала)

hovered Play("test_one", "menu_click_01.ogg") –музыка при наведения (если несколько кнопок, то несколько кнопок надо использовать)

для горячих точек вот наглядный пример

 

Анимация

Все видели как часто в новеллах персонажи моргают, двигаются а как это происходит?

Самый простой способ через алт (1 и 2)

image ger_1:

"images/1/1.png"

Pause 1.0

"images/1/2.png"

Pause 1.0

Repeat 2

repeat 2 – количество повторов 2, если просто поставить repeat, то будет повторяться бесконечно

Введя это мы видим что персонаж моргает.

Или по старинке как пример вот

image glaz = Animation("1.png", 0.1, "2.png", 0.1)

И потом просто вызываете анимацию как картинку в проекте пример:

Show glaz

"текст"

show ger_1

Scene black

$ max_time = 60

$ ww, hh = 4, 4

call memoria_game

Return

Вам нужно вставить в ваш проект

$ max_time = 60

$ ww, hh = 4, 4

call memoria_game

и файл с самой мини игрой

И все игра у вас в проекте

Splashscreen

Есть 2 типа splashscreen

1)Метка splashscreen

2) Изображение splashscreen

 

Метка splashscreen

если добавить метку «label splashscreen:», то код после неё запустится до появления главного меню.

Добавьте такую метку в проект test

label splashscreen:

….scene black

….centered "Внимание\n

Данная игра может содержать нецензурные выражения\n

и сцены насилия.Содержимое может вызвать у вас протест.\n

Данная игра является безобидной шуткой и ни в коем\n

случае не ставит перед собой цели оскорбить кого-либо\n

Все сходства с реальными персонажами и событиями\n

случайны. Эта игра содержит контент, принадлежащий\n

третьим лицам.По закону об авторском праве РФ я имею\n

право использовать его для создании пародии, которой\n

данная игра и является. Я не присваиваю себе\n

авторство над видео- и аудиозаписями, изображениями\n

и эффектами, я всего лишь являюсь автором всей картины\n

в целом. Все исходники указанны в конце игры(и/или описании)\n

Возрастная маркировка данной игры - 18+. "

….centered "{size=+10}САМИЗДАТ{/size}\n\n\n\n\nЛитературно-публицистический журнал\n\n\n\n {size=-5}{a=http://samlib.ru}http://samlib.ru{/a}{/size}"

….centered "Посетите нашу группу {a=http://vk.com/renpy}Ren'Py на vk.com{/a}"

….return

Сохраните сценарий и запустите проект тест
Запустившись вам ранее сразу главное меню загружалась, а теперь то что вы прописали в метке splashscreen. Там вы сможете вставить видео(http://ru.renpypedia.shoutwiki.com/wiki/%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE_%D0%B2_Renpy)

Логотип группы, и т.д…

Изображение splashscreen

Eсли картинку назвать "presplash.png" и положить в папку game проекта, то она появится на экране ещё перед появлением окна игры (на время загрузки контента)

Создаем инсталлятор

Когда вы закончили свою демо, или проект. Вам потребуется создать инсталлятор (дабы серьезней выглядело все, и не знающие ренпай могли поиграть в ваш проект.

1) Для этого, заходим в лаунчер ренпая,
2) Выбираем раздел «очистить постоянные данные». Дабы у игрока сразу не было все открыто, и он ваш проект пропуском за 5 мин не прошел.
3) Выбираем пункт «Построить дистрибьютор» И там выбираем что вы хотите сделать(на виндовс или линукс и т.д) и программа автоматом создаст ехе и т.д.
4) Выходим на папку проекта test или какой вы создавали. Выбираете правой кнопкой мыши ваш проект и выделяете галкой Создать SFX-архив

5) Простейший инсталлятор у вас готов
Если вам нужен посложней то просмотрите видео https://vk.com/cyber_z_craft?w=wall-76362432_181

 

 

Теперь давайте уделим внимание на проблеме всех начинающих кодировщиков.

Нет художников

По этому поводу писал один человек https://vk.com/renpy?w=wall-7553243_24357%2Fall и я с ним согласен.

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

мы написали 1 и 2 главу но нам не хватает художника,

чем

ну мы сейчас начнем писать новеллку у нас есть сюжет, но мы не пишем новеллу из за того что художника нету….

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

Плюс вы всегда можете нанять художника профессионального для вашего проекта. Зачастую от этого вы выигрываете время, у вас будут профессиональные рисунки, а не квакозябры которые рисуют в 1 классе. https://vk.com/topic-7553243_33290860?post=5013

Есть еще такая штука как генератор персонажей https://vk.com/topic-76362432_35593417

И такие вот сообщества https://vk.com/ayri_attic в которых вам помогут собрать новелле ресурсы, которая в дальнейшем вам проще будет найти художника(ибо он будет иметь представление что нарисовать)

 

Сайты

1) https://lemmasoft.renai.us/forums/

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

2) https://vk.com/renpy

Российское крупнейшее объединение ренпая. Тут вам всегда смогут подсказать ответ на вашу проблему. В обсуждениях группы собраны полезные плюшки, мини игры, статьи.

3) https://vk.com/cyber_z_craft

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

4) http://renpyfordummies.blogspot.ru/

Заключение

 

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

Так же я настоятельно рекомендую пройти вам видеоуроки от Мастера Ирдиса на ютубе их можно найти, или в сообществе https://vk.com/cyber_z_craft

Пройдя его уроки вы сможете самостоятельно оформить меню Gui не смотря на то что он пишет уроки свои на старой граф версии ренпая. Там многое аналогично, незначительные различия.

Если вам что-то не понятно, загляните в приложение обучение, или спросите у опытных кодировщиков в сообществах

 

Всем спасибо! Что уделили моему маленькому учебнику внимание.

 

Учебник по Ren’Py

Начало работы

Для начало работы вам необходимо будет скачать Ren’ру http://www.renpy.org

и установить ее, только смотрите что бы папка сохранения была не на русском языке(говорят скоро будет обновление где эта проблема будет исправлена).
Самый оптимальный вариант создать в диске С папку под номером 1 (мне так удобней) и получим C:\1\renpy-6.99.11.3-sdk (смело скачивайте самую последнюю версию)


Поделиться с друзьями:

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.452 с.