Уроки 21-30

Переменные, звук, видео

Урок 21: Форматирование текста.

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

Я покажу как выводить кавычки и другие символы, как делать текст полужирным, курсивным, подчёркнутым или зачёркнутым, как менять его размер, цвет, шрифт и скорость появления. А кроме этого, как вставлять картинки в текст.

Заметки и фрагменты кода

# Чтоб вывести символ кавычки поставьте перед неё знак \

"Это просто кавычка \" и ничего более."

# Так же можно выводить несколько пробелов подряд

"Пробелы - \ \ \ . Тыт четыре пробела."

# Сочетание \n переводить текст на новую строку.

"Первая строка.\nВторая строка."


# Тег {b} делает текст полужирным.

"Здесть {b}полужирное{/b} слово."

# Тег {i} делает текст курсивным.

"Здесть {i}курсивное{/i} слово."

# Тег {u} делает текст подчёркнутым.

"Здесть {u}подчёркнутое{/u} слово."

# Тег {s} делает текст зачёркнутым.

"Здесть {s}зачёркнутое{/s} слово."


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

# Это правильная строка.

"Обычный {b}Полужирный {i}Полужирный-Курсив{/i} Полужирный{/b} Обычный"

# Эта строка неправильная

"Обычный {b}Полужирный {i}Полужирный-Курсив{/b} Полужирный{/i} Обычный"


# Тег {size} изменяет размер текста

"{size=+10}Больше на 10{/size} {size=-10}Меньше на 10{/size} {size=24}Текст 24 пиксела{/size}."


# Тег {color} задаёт цвет текста

"{color=#f00}Красный{/color}, {color=#00ff00}Зелёный{/color}, {color=#0000ffff}Синий{/color}"


# Тег {cps} указывает скорость появления текста

"{cps=20}Скорость 20 знаков в секунду{/cps} {cps=*2}Скорость вдвое выше обычной{/cps}


# Тег {font} задаёт шрифт текста

"Следующий текст {font=oswald.ttf}написан шрифтом Oswald{/font}."


# Тег {image} вставляет картинку в текст

"Это моя машина - {image=car.png}"

Урок 22: Музыка и звуки.

Один из самых важных уроков. Проигрывание музыки и звуков в новелле.

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

Заметки и фрагменты кода

# Добавление музыки в скрипт

# Мы добавляем файл "mu_music.mp3", котрый находится в папке "music"

define audio.mymus = "music/mu_music.mp3"


# Точно так же добавляются звуки

define audio.mysnd = "music/boom sound.mp3"


# Начать проигрывание музыки

play music mymus


# Остановить музыку

stop music


# Остановить музыку с плавным затуханием в 2 секунды

stop music fadeout 2


# Проиграть звук

play sound mysnd

Урок 23: Числовые переменные.

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

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

Заметки и фрагменты кода

# Создаём переменную, как и любые другие

define myhp = 100


# Перевести текстовую переменную (например, которрую ввёл игрок) в целое число можно функцией int().

# Это нужно обязательно сделать, если вы хотите производить операции с этой переменной (сложение, умножение и.т.)

$ myvar = int(myvar)


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

$ myhp = myhp + 15   # добавить 15

$ myhp = myhp - atk  # отнять значение переменной atk

$ def = def * 2      # умножить на 2


# В условиях можно сравнивать числовые переменные. > больше. < меньше. >= больше или равно. <= меньше или равно. == равно. != не равно.

if a > b:

if b <= 150:

if c != 0:


# Можно сделать цепочку условий с помощью ткой конструкции

# Блок else можно не использовать.

if a > 100:

    # если а больше 100

elif a > 50:

    # в ином случае - если а больше 50

else:

    # в других случаях


# Вызвать метку можно командой call. В отличие от jump в этом случае, когда игра дойдёт до команды return, выполнение вернется к команде call и дальше игра продолжится со следующей строки.

call mylab

Урок 24: Редактирование звуков.

Небольшое, но важное отступление от RenPy.

Мини-урок по работе с программой для редактирования звука Audacity. Научимся вырезать из звуковых файлов лишнее, подгонять звуки под одну громкость и уменьшать размер больших файлов с музыкой.

Урок 25. Главное меню.

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

Заметки и фрагменты кода

# Для начала создаём три картинки:

# Фоновое изображение

# Прозрачная картинка со всеми кнопками

# Прозрачная картинка со всеми кнопками в подсвеченном виде


# Редактируем файл screens.rpy

# Раздел главного меню.

screen main_menu():

    ## Этот тег гарантирует, что любой другой экран с тем же тегом будет

    ## заменять этот.

    tag menu

    

# imagemap создает группу кнопок и других элементов в меню (ползунки, переключатели и т.д.)

    imagemap:

        # ground  указывает картинку с фоном

        ground "gui/main_menu.png"

        # idle  указывает картинку с кнопками

        idle "gui/menu_normal.png"

        # hover указывает картинку с подсвеченными кнопками

        hover "gui/menu_hover.png"

        

        # Команда hotspot показывает РенПай где на картинке находится кнопка и что она делает

        # Четыре числа в скобках - кордината х, координата у, ширина, высота кнопки

        # После action указывается действие, которое кнопка выполняет

        # Начать игру

        hotspot (30, 150, 240, 60) action Start()

        # Загрузить

        hotspot (30, 240, 320, 80) action ShowMenu("load")

        # Настройки

        hotspot (30, 320, 330, 80) action ShowMenu("preferences")

        # Об игре

        hotspot (30, 400, 250, 80) action ShowMenu("about")

        # Выход

        hotspot (30, 610, 220, 80) action Quit(confirm=True)

        # Помощь

        hotspot (1140, 660, 140, 50) action ShowMenu("help")

Урок 26. Боковые портреты.

Портреты персонажей внизу экрана можно увидеть во многих новеллах. Вы удивитесь насколько просто добавить их в RenPy.

Урок 27. Самые частые ошибки.

Разбираем самые частые ошибки, которые возникают при создании новеллы, в РенПай. Учимся их анализировать и исправлять.

Урок 28. Режим NVL.

Простая, но полезная функция в РенПай - режим NVL. Он предназначен для вывода текста на весь экран поверх всего фона.

Заметки и фрагменты кода

# Создаём специального nvl-персонажа.

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

define n = Character(None, kind=nvl)


# Перед репликой может понадобиться скрыть обычное диалоговое окно.

window hide


# Напсиать текст можно, как обычно.

n "Этот текст будет выводиться на весь экран."


# Очистить текст, который был ранее выведен на экран nvl.

nvl clear


# Скрыть экран nvl.

nvl hide

Урок 29. Разделение скрипта на части.

В РенПай можно очень просто разделить файл скрипта на несколько частей. В этом коротком видео мы разберёмся как это сделать и главное зачем это нужно.

Урок 30. Заставка и видео.

Обычно при запуске любой игры первое, что видит игрок - это логотип авторов и другая информация. В этом уроке мы научимся делать это в РеПай.

Кроме того увидим, как в своей игре проиграть видео файл.

Заметки и фрагменты кода

# Метка splashscreen автоматически запсукается при старте игры перед главным меню.

label splashscreen:

    

    # Показываем чёрный экран

    scene black

    # Ждём полсекунды

    pause(0.5)

    # Плавно переходим к нужной картинке.

    scene sponsor with fade

    # Если мы напишем просто pause, то игра будет ждать щелчка от игрока.

    pause(2)

    scene black with fade


    # Проиграть указанное видео.

    $ renpy.movie_cutscene('videos/logo.ogv')