[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Создание диалога
EvilAdminДата: Суббота, 28.11.2015, 22:55 | Сообщение # 1
Учитель
Группа: Администраторы
Сообщений: 310
Репутация: 0
Статус: Offline
Данный урок находится на официальном сайте по ссылке: http://www.clickteam.com/dialog-tutorial.html
Автор: Adam Gledhil

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

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

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



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

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



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



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



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

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



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



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



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



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



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

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



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



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

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


 
EvilAdminДата: Воскресенье, 29.11.2015, 23:27 | Сообщение # 2
Учитель
Группа: Администраторы
Сообщений: 310
Репутация: 0
Статус: Offline
Часть 2. Привязка диалога к ini-файлу


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

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

Примерно так он выглядит:
[my group]
my item = my string text
my item : my values


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

Каждая группа может содержать сколь угодное количество переменных строковых и числовых значений. Для присваивания определённых значений в группе требуется учитывать следующие правила. Если это текст, то прописывать его значение в группе следует через символ "=". Если же это числовое значение переменной, то через символ ":".

Вот ещё один пример использования разного рода переменных в группах ini-файла:
[battle ship]
ship name = Battle Star Galactica
captain = Admiral Adarma
shields : 150
weapon strength : 200
mission = To lead a ragtag fleet beyond the cylons tyranny to find a shining planet known as earth!

[cylon base ship]
captain = evil Dr boltar!
weapon strength : 500
mission = destroy the galactica!


Теперь думаю вы поняли как мы можем применить данный урок для создания диалога.
(Далее весь текст для диалога я буду писать на английском языке. Дело в том, что с загрузкой русского текста из ini-файла возникают проблемы. С чем точно это связанно - увы не знаю. Но думаю в скором времени выясню и напишу как с этим бороться).

Ещё один пример ini-файла:

[Adam]
say 1 = My name is Adam.
say 2 = Each item represents something I'm saying. It can be long or short, but not too long because each item can only hold about 1000 characters (letters/numbers).
say 3 = Ini files themselves are limited to a maximum file size of 64kb.
say 4 = Don't worry though, that's quite big just for storing text.


Далее нам следует создать группу с именем персонажа и описанием фраз, которые он будет произносить.

Также вы должны знать, что использование ini-файлов для хранения значений переменных не всегда бывает безопасным. Дело в том что любой может посмотреть их содержимое, и даже изменить для получения преимущества в игре. Но так как мы будем использовать ini-файлы для хранения диалога, то никаких проблем нет.
 
  • Страница 1 из 1
  • 1
Поиск: