Данный урок находится на официальном сайте по ссылке: http://www.clickteam.com/dialog-tutorial.html
Автор: Adam Gledhil

Этот урок покажет вам один из способов создания текстового диалога в Clickteam Fusion 2.5 (далее CF). Есть много разных способов для реализации диалога в программе, но мы будем больше ориентироваться на использование INI файла.

Часть 1. Настройка текста и создание печатающего эффекта

Первое, что мы сделаем, это создадим классический диалог, который очень часто можно встретить в диалоговых и RPG играх. На экране появляется текст посимвольно, словно печатается на печатной машинке.

http://informat45.ucoz.ru/practica/ClickTeam/0002.gif

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

Для начала создадим объект String на фрейме. Найти этот объект вы сможете через Insert Object (Ctrl + J), в разделе Text.

http://informat45.ucoz.ru/practica/ClickTeam/0003.png

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

http://informat45.ucoz.ru/practica/ClickTeam/0004.png

Переименуйте первый объект String - "temp dialogue", а второй назовите просто "dialogue".

http://informat45.ucoz.ru/practica/ClickTeam/0005.png

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

Нам осталось ввести текст в "temp dialogue", двойным щелчком нажмите на него и введите текст "Здравствуйте, меня зовут Адам!".

http://informat45.ucoz.ru/practica/ClickTeam/0006.png

Далее мы создадим событие, чтобы посимвольно вывести текст из "temp dialogue" в "dialogue". Для этого перейдём в Event Edition.

http://informat45.ucoz.ru/practica/ClickTeam/0007.png

Далее в Event Edition нажмём на строку 1, щелкните правой кнопкой мыши на событие "the timer" и выберем свойство "Every" из меню. Иными словами, мы должны запрограммировать событие которые будут совершаться каждый момент времени. В данный случае это нужно, что бы программа знала когда выводить символы.

http://informat45.ucoz.ru/practica/ClickTeam/0008.png

Давайте теперь запрограммирует вывод текста с интервалом в 5 миллисекунд.

http://informat45.ucoz.ru/practica/ClickTeam/0009.png

Отлично, теперь тут же нажмём правой кнопкой мыши на объект "dialogue", и выберем из меню пункт "Change alterable string".

http://informat45.ucoz.ru/practica/ClickTeam/0010.png

Вот наша формула, введём её в редактор:

Left$(string$("temp dialogue"), Len(string$("dialogue"))+1)

http://informat45.ucoz.ru/practica/ClickTeam/0011.png

Ещё раз рассмотрим, что мы имеем: Каждые 5 миллисекунд происходит посимвольный набор текста в объект "dialogue", источником которого является содержимое объекта "temp dialogue". Формула описанная выше вычисляет длину текста, после чего начинается печать символов слева направо.

http://informat45.ucoz.ru/practica/ClickTeam/0012.gif

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

Не забудьте сохранить результат, он нам пригодится для следующего урока. Теперь, когда мы рассмотрели основы, рассмотрим как сохранить диалог не в строковом объекте, а в отдельном ini-файле.