Как сделать renpy карту

Как сделать renpy карту
Как сделать renpy карту
Как сделать renpy карту
Как сделать renpy карту

Содержание

Характерной особенностью визуальной новеллы, придающей её имени форму, является графика. Ren'Py содержит четыре оператора, которые управляют выводом изображений на экран и моделью, определяющей порядок отображения изображений. Это позволяет легко выводить изображения на экран таким образом, чтобы это подходило для использования в визуальных новеллах и других играх с элементами повествования.


Ниже приведены четыре оператора, работающих с изображениями:

  • image – определяет новое изображение.
  • show – отображает изображение на слое.
  • scene – очищает слой и дополнительно отображает изображение на этом слое.
  • hide – удаляет изображение со слоя.


Поскольку резкие изменения изображений могут сбивать пользователя с толку, Ren'Py имеет в своем арсенале оператор with, который позволяет применять эффекты, когда изменяется показанное на экране.

Общие понятия (Concepts)[править]

Изображение (Image)[править]

Изображение – это то, что можно отобразить на экране с помощью оператора show. Изображение состоит из имени и отображаемого объекта. Когда изображение появляется на слое, связанный с ним отображаемый объект выводится на этом же слое.

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

Например, возьмем изображение с именем mary beach night happy. В нашем случае тегом является "mary", а атрибутами изображения - "beach", "night" и "happy".

Отображаемый объект – это то, что можно отобразить на экране. Наиболее распространенный объект для отображения на экране – неподвижное изображение, которое может быть задано путем указания имени файла изображения в виде последовательности символов. В примере, приведённом выше, мы можем использовать "mary_beach_night_happy.png" в качестве имени файла. В то же время изображение может относиться к любому отображаемому объекту, поддерживаемому Ren'Py, а не только к неподвижным изображениям. Таким образом, операторы, используемые для отображения изображений, также могут применяться для выведения на экран анимации, сплошных цветов и других видов отображаемых объектов.

Слой (Layer)[править]

Слой – список отображаемых объектов, которые отображаются на экране. Ren'Py поддерживает несколько слоёв, включая слои, задаваемые пользователем. Порядок слоёв фиксируется внутри разрабатываемой игры (управляется переменной config.layers), а порядок отображаемых объектов внутри слоя контролируется порядком, в котором вызываются операторы scene и show, и свойствами, заданными для этих операторов.


Следующие слои являются частью Ren'Py:

master Слой по умолчанию, используемый операторами scene, show, и hide. Обычно используется для отображения фона и спрайтов персонажей. transient Слой по умолчанию, используемый функциями пользовательского интерфейса. Слой очищается в конце каждого взаимодействия. screens Слой используется системой экранов. overlay Слой по умолчанию, используемый при вызове функции пользовательского интерфейса из функции наложения. Слой очищается при перезапуске взаимодействия.


Дополнительные слои можно определить, обновив config.layers и другие различные конфигурационные переменные, относящиеся к слою. С помощью renpy.layer_at_list() к слою можно применить одно или несколько преобразований.

Определение изображений (Defining Images)[править]

Существует два способа определения изображений. Можно поместить файл изображения в папку с изображениями, либо определить изображение с помощью оператора image. Первый способ просто реализовать, так как он предполагает размещение правильно названных файлов в соответствующей папке, а второй предоставляет вам больше контроля над тем, как определяется изображение, а также позволяет объявить изображения, которые не имеют собственных файлов.

Изображения, определенные с помощью оператора image, имеют преимущество над изображениями, размещенными в папке.

Папка изображений (Image Directory)[править]

Папка с изображениями называется "images" и находится в директории игры. Когда файл с расширением .jpg или .png помещается в эту папку, расширение файла удаляется, а оставшаяся часть файла принудительно переводится в нижний регистр. Полученное в результате имя файла используется в качестве имени изображения, если изображение с таким именем ранее не было определено.

Этот процесс происходят во всех папках внутри папки с изображениями. Например, все эти файлы определят изображение eileen happy:

game/images/eileen happy.png game/images/Eileen Happy.jpg game/images/eileen/eileen happy.png

Оператор image (Image Statement)[править]

Для определения изображения используется оператор image. Он состоит из одной логической строки, начинающейся с ключевого слова image, за которым следует имя изображения, знак равенства и отображаемый объект. Например:

image eileen happy = "eileen_happy.png" image black = "#000" image bg tiled = LiveTile("tile.jpg") image eileen happy question = VBox( "question.png", "eileen_happy.png", )

Когда изображение непосредственно не находится в директории игры, необходимо указать папки, расположенные внутри директории. Например, если изображение находится в папке game/eileen/happy.png, в коде необходимо прописать:

image eileen happy = "eileen/happy.png"

Оператор image выполняется во время инициализации перед отображением меню или запуском метки label start. Если операторы image не содержатся внутри блока инициализации, они выполняются так, как если бы они были помещены в блок init с приоритетом 500.

Смотрите также раздел «Оператор image с блоком ATL».

Оператор show (Show Statement)[править]

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

Если оператору show задано точное имя существующего изображения, то это изображение отображается на экране. Иначе Ren'Py попытается найти уникальное изображение, которое:

  • имеет такой же тег, что и тег, указанный в операторе show;
  • имеет все атрибуты, приведенные в операторе show;
  • если изображение с таким же тегом уже отображается, то уникальное изображение разделяет с этим изображением наибольшее число атрибутов.

Если уникальное изображение невозможно найти, возникает исключение.

Если изображение с таким же тегом изображения уже отображается на слое, новое изображение заменяет его. Иначе изображение помещается поверх всех остальных изображений, размещенных на слое (иными словами, ближе всего к пользователю). Такой порядок может быть изменен с помощью свойств zorder и behind.

Оператор show не вызывает взаимодействия. Чтобы изображение действительно отобразилось перед пользователем, необходимо запустить оператор, вызывающий взаимодействие (например, операторы say, menu, pause и with).


Оператор show принимает следующие свойства:

as Свойство as принимает имя. Это имя используется вместо тега изображения при отображении изображения. Позволяет одному и тому же изображению во второй раз отобразиться на экране. at Свойство at принимает одно или несколько простых выражений, разделенных запятыми. Каждое выражение должно быть преобразовано. Преобразования применяются к изображению в порядке слева направо. Если положение at не задано, Ren'Py сохранит любое существующее преобразование, примененное к изображению. Если преобразование не существует, изображение будет отображаться с помощью преобразования default. behind Содержит список из одного или нескольких имён, разделённых запятыми. Каждое имя используется в качестве тега изображения. Изображение отображается за всеми изображениями с указанными тегами, которые показываются в настоящее время. onlayer Принимает имя. Показывает изображение на именованном слое. zorder Принимает целое число. Оно определяет относительный порядок расположения изображений в пределах слоя, при большее число означает более близкое расположение изображения к пользователю. Это свойство обычно не используется в играх, созданных на движке Ren'Py, но может быть полезно при переносе визуальных новелл с других движков.


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

image mary night happy = "mary_night_happy.png" image mary night sad = "mary_night_sad.png" image moon = "moon.png"

Вот несколько примером применения оператора show:

# Стандартное применение оператора show show mary night sad # Поскольку 'mary night happy' отображается, следующий оператор эквивалентен show mary night happy show mary happy # Показать изображение в правой части экрана. show mary night happy at right # Отобразить изображение во второй раз. show mary night sad as mary2 at left # Отобразить изображение позади другого. show moon behind mary, mary2 # Показать изображения на слое, определенном пользователем. show moon onlayer user_layer


Выражение show Вариант оператора show заменяет имя изображения на ключевое слово expression, за которым следует простое выражение. Выражение должно быть отображаемым объектом, а отображаемый объект показан на слое. Чтобы скрыть отображаемый объект, тег необходимо задать с помощью оператора as. Например: show expression "moon.png" as moon


Оператор show layer Оператор show layer позволяет применить ко всему слою преобразование или преобразование ATL (например, "master"), используя следующий синтаксис show layer master at flip или: show layer master: xalign 0.5 yalign 0.5 rotate 180 Чтобы прекратить применение преобразований к слою, используйте: show layer master

Оператор scene (Scene Statement)[править]

Оператор scene удаляет все отображаемые объекты со слоя, а затем выводит изображение на этом слое. Оператор состоит из ключевого слова scene, за которым следует имя изображения и ноль или более свойств. Изображение отображается таким же образом, как и в операторе show, а оператор scene принимает те же свойства, что и оператор show.

Оператор scene часто используется для отображения изображения на фоновом слое. Например:

scene bg beach


Выражение scene Как и оператор show, оператор scene может принимать выражения вместо имён изображений.


Очистка слоя Когда имя изображения полностью исключено, оператор scene очищает все отображаемые объекты со слоя, не показывая другие отображаемые объекты.

Оператор hide (Hide Statement)[править]

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

Оператор hide используют в редких случаях. Если спрайт представляет собой персонажа, то оператор hide нужен только тогда, когда персонаж покидает экран. Когда персонаж изменяет свои эмоции, то вместо оператора hide предпочтительнее использовать оператор show, поскольку он автоматически заменит изображение с тем же тегом.


Оператор hide принимает следующее свойство:

onlayer Принимает имя. Скрывает изображение из именованного слоя.

Например:

e "Я сваливаю." hide eileen


Никогда не прописывайте в коде:

hide eileen show eileen happy

Вместо этого просто напишите:

show eileen happy

Оператор with (With Statement)[править]

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

Эффект перехода используется между содержимым экрана в конце предыдущего взаимодействия (с переходными экранами и скрытыми отображениями объектами) и текущим наполнением сцены после выполнения операторов show и hide.

Оператор with вызывает взаимодействие. Продолжительность этого взаимодействия контролируется пользователем и он может привести к его преждевременному завершению.

Полный список переходов, которые можно использовать, приведен в разделе «Переходы».

Ниже приведён пример применения оператора with:

show bg washington with dissolve show eileen happy at left show lucy mad at right with dissolve

Вышеуказанный код приводит к возникновению двух переходов:

  • Первый оператор with использует переход dissolve для изменения экрана от того, что было ранее отображено на фоне washington (по умолчанию переход dissolve определяется как .5 секундное растворение).
  • Второй переход происходит после отображения изображений Эйлин и Люси. Это приводит к растворению сцены, состоящей исключительно из фона, к сцене, состоящей из всех трех изображений. В результате два новых изображения растворяются одновременно.

Оператор with None (With None)[править]

Выше приведен пример с двумя переходами dissolve. Но что, если мы хотим, чтобы фон появился мгновенно, а затем растворились два персонажа? Простое исключение первого оператора with приведёт к растворению всех трех изображений, но нам нужен способ при котором первое изображение отобразится мгновенно.

Оператор with изменяет поведение при задании специального значения None. Оператор with None приводит к появлению сокращенного взаимодействия, не меняя то, что видит пользователь. При следующем переходе взаимодействие начнётся со сцены, которая отображается так, как и в конце этого сокращенного взаимодействия.

Например, в:

show bg washington with None show eileen happy at left show lucy mad at right with dissolve

В вышеуказанном коде происходит только один переход: от фона washington к сцене, состоящей из всех трех изображений.

Выражение with операторов scene, show и hide (With Clause of Scene, Show, and Hide Statements)[править]

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

Выражение with равноценно предшествующей строке с оператором with None и следующему за ним оператору with, содержащему текст выражения with. Например:

show eileen happy at left with dissolve show lucy mad at right with dissolve

аналогично:

with None show eileen happy at left with dissolve with None show lucy mad at right with dissolve

Операторы window show и hide (Hide and Show Window)[править]

Оператор window используется для управления окном, если оно отображается, когда персонаж не говорит (например, во время переходов и пауз). Оператор window show вызывает отображение окна, в то время как оператор window hide скрывает окно.

Если задан дополнительный переход, он используется для отображения и скрытия окна. Если не задан, по умолчанию используются config.window_show_transition и config.window_hide_transition. Если в качестве перехода задано значение None, то это не позволяет переходу произойти.

Само окно отображается при вызове переменной config.empty_window. По умолчанию она способствует тому, что персонаж-рассказчик произносит пустую строку:

show bg washington show eileen happy with dissolve window show dissolve "Я могу что-то говорить..." show eileen happy at right with move "... и перемещаться, сохраняя отображение диалогового окна." window hide dissolve

Функции изображения (Image Functions)[править]

renpy.can_show(name, layer=None, tag=None)

Определяет, может ли name использоваться для отображения изображения. Интерпретирует name как тег и атрибуты. tag layer

Статья "Displaying Images" на английском языке.

Как сделать renpy карту Как сделать renpy карту Как сделать renpy карту Как сделать renpy карту Как сделать renpy карту Как сделать renpy карту Как сделать renpy карту Как сделать renpy карту Как сделать renpy карту Как сделать renpy карту Как сделать renpy карту Как сделать renpy карту Как сделать renpy карту Как сделать renpy карту

Читать далее:




Основы дизайна причёски о.и кулешкова о.б читаева




Сделай сам своими руками из спичек инструкция 7




Как сделать журавликов из бумаги




Как сделать зеленый уголок в гостиной




Смотреть как сделать воздушный змей