Один приятель (художник) заинтересовал меня кроссплатформенной средой быстрой разработки, Clickteam Fusion Developer 2.5 [1] (раньше эта система называлась MultiMedia Fusion 2, MMF2). Он интересуется прототипированием графических игровых интерфейсов и давно мечтает покорить мир какой-нибудь самописной игрушкой, причем не любит разбираться в тонкостях языков программирования.
Разработчики Clickteam Fusion Developer (далее для краткости CTF) позиционируют свое детище как самый простой и быстрый способ создания игр и программ. Цитата: "... в течение первого часа Вы научитесь базовым инструментам. Соберите свое приложение Windows несколькими кликами мыши, или выполните компиляцию приложения на другие дополнительные платформы наподобие OS, Android, Flash и XNA (Windows Mobile phone и Xbox), если приобретете наши дополнительные экспортеры". Звучит очень заманчиво.
[Установка]
Вполне годные дистрибутивы можно найти сами знаете где. CTF версии 2.5 устанавливается очень просто. Однако имейте в виду, что если на диске назначения, куда Вы устанавливаете CTF, используется файловая система NTFS (а это почти всегда верно для Windows), то инсталлятор следует запустить с правами администратора.
После установки CTF и первого запуска откроется окно справки, предложат для ускорения обучения попробовать 3 примера создания игр:
ChocoBreak: демонстрация быстрого создания игры наподобие Арканоид. Quick Physics: демонстрация возможности моделирования физического окружения (physical engine). AllBoxedUp: использование physic engine для создания игры наподобие Angry-Bird.
Процесс обучения распределен на четкие шаги, так что если следовать процессу, то действительно многое становится понятным. Чем-то CTF по принципу организации похож на систему программирования Delphi или CBuilder ранних релизов. Здесь я рассмотрю только интересные или проблемные моменты, с которыми мне пришлось столкнуться.
[Редакторы и инструментарий]
В системе CTF есть несколько редакторов, предназначенных под разные задачи.
Storyboard Editor. В этом окне отображается список фреймов и их общие свойства. Storyboard Editor позволяет быстро перейти к редактированию каждого фрейма.
Frame Editor. В окно редактора фрейма Вы можете бросать объекты, располагать нужным образом, определяя внешний вид игрового поля. Редактор фрейма работает привычным общепринятым образом, как работают большинство редакторов графики и текста. Объекты на поле фрейма можно копировать методом "перетащи и брось" (drag & drop), если удерживать при перетаскивании клавишу Ctrl (таким же способом копируются файлы в Проводнике Windows). Можно выделить группу объектов курсором мыши, и перемещать их или копировать группой. Клавиши курсора помогают точно переместить выделенный объект или группу объектов на одну точку вправо, влево, вверх или вниз). Также работают стандартные комбинации клавиш для копирования, вырезания и вставки объектов (Copy, Cut, Paste).
Library Toolbar. Всплывающее снизу система доступа к готовым графическим примитивам, которые можно набрасывать в окно документа Frame Editor, и составлять из них приложение или игру. Библиотека устроена в виде проводника, которые показывает дерево папок и объектов библиотек в них. Двойной клик на библиотеке открывает доступ к её содержимому. Чего не хватает в Library Toolbar - так это фильтра или быстрого поиска компонентов.
Примечание: ИМХО навигация по библиотекам объектов очень неудобна - нет системы поиска, приходится делать лишние движения и клики, чтобы увидеть содержимое каждой библиотеки. Перед использованием библиотек придется их все бегло просмотреть и составить для себя памятку - где что находится.
Properties. Это редактор свойств, который позволяет настраивать параметры и поведение объектов, помещенных на игровое поле. Можно настроить, как объект перемещается, отображается, его анимацию, генерацию событий и т. п.
Event Editor. Это очень важный инструмент для составления функционала приложения. Здесь можно определить обработчики для событий, таких как срабатывание таймаута, нажатие клавиш, перемещение курсора мыши, столкновение объектов и т. д. Всем этим событиям можно поставить в соответствие какие-либо действия (операции) внутри приложения. Например, можно назначить клавише Escape действие выхода из программы, или, как другой пример, можно для движущегося объекта назначить функцию отскакивания (bounce), когда он встречается с другим предметом.
Все события и объекты в редакторе событий распределены по строкам и столбцам таблицы. Строки соответствуют событиям (при добавлении новых событий в таблице добавляются соответствующие строки), а объекты столбцам (при добавлении во фрейм новых объектов в таблице добавляются столбцы).
Также в этой таблице кроме столбцов пользовательских объектов есть столбцы, соответствующие системным объектам.
Special. Этот объект содержит многие действия и условия для сложных действий на используемой платформе. Особенно это станет важным для Вас, когда наберетесь опыта и станете продвинутым пользователем.
Speaker. Содержит действия для проигрывания звуков и музыки и условий для определения, что будет проигрываться - какой звук или какая музыка. Вы можете также настроить громкость, каналы вывода и многое другое.
Storyboard controls. Этот объект содержит действия и условия для регулирования потоком выполнения кода в приложении. Это может быть переход от одного фрейма к другому, выход из приложения и т. д.
Timer. Здесь содержатся условия для выполнения действий в определенные моменты времени при работе приложения.
New objects. Этот объект позволит Вам создавать новые объекты приложения, дубликаты уже имеющихся объектов, когда приложение уже работает. Например, таким способом один монстр может превратиться в десять монстров.
Mouse pointer and Keyboard. В этом объекте содержатся все необходимые условия для проверки мыши и нажатий клавиш.
Player 1. Объект содержит действия для изменения очков и количества жизней игрока (используется в играх).
Вы можете создавать события, и назначать для них нужные действия (см. пример во врезке ниже).
Event List Editor. Те же самые события, которые редактируются и создаются в Event Editor, могут быть отображены по-другому, в виде списка. Это делает Event List Editor.
Storyboard Editor. В этом редакторе открывается общий вид на приложение: здесь показаны все фреймы приложения, один за другим.
1. Откройте Event Editor (Ctrl+E), сделайте двойной щелчок в таблице на приглашение создать новое событие (New condition).
2. Откроется окно, где нужно выбрать тип создаваемого события. Выберите тип "The mouse pointer and keyboard" (иконка с изображением клавиатуры и мыши). Появившемся меню выберите The keyboard -> Upon pressing a key. Система будет ждать нажатие той клавиши, которую надо обработать как событие (появится окошко с сообщением "Please press a key"). Например, нам нужно, чтобы в ответ на нажатие клавиши Esc приложение закрывалось, тогда нажмите на клавишу Esc, и будет создано новое событие Upon pressing "Escape", оно появится в таблице событий.
3. Теперь осталось привязать к созданному событию нужное действие. Для этого нужно заполнить ячейку в пересечении строки события и столбца действия. Предположим, это будет выход из приложения, тогда нам нужен столбец Storyboard Controls (с иконкой в виде шахматной доски и коня). Кликните правой кнопкой на ячейку в пересечении строки события и столбца действия, и выберите пункт End the application.
Одному событию можно назначить несколько действий, тогда напротив строки события будет стоять галочка в нескольких столбцах. Например, Вы уже назначили действие Bounce (отскочить) для перемещающегося мячика, когда он столкнулся с другим объектом. Тогда для этого события можно еще назначить действие "проиграть звук". Для этого нужно в столбце объекта Sound задать действие Play Sample, и выбрать нужный проигрываемый звук. Назначенные действия для одного события будут происходить по возможности одновременно, в зависимости от быстродействия платформы, на которой работает приложение.
Уже созданные действия (галочки в пересечениях столбцов и строк таблицы редактора событий) можно перетаскивать курсором мыши по строкам таблицы (функция drag & drop), тогда эти действия будут копироваться между разными событиями. Ниже на скриншоте показана таблица редактора событий для приложения примера игры Chocobreak.
[Часто используемые функции и быстрые клавиши]
Функция
Shortсut
Описание
Run Frame
F7
Запуск на выполнение текущего выбранного фрейма.
Run Application
F8
Запуск на выполнение приложения.
Build & Run
Ctrl+F8
Для запуска приложения HTML5 будет задействован встроенный веб-сервер CTF.
Event Editor
Ctrl+E
Откроется окно редактора событий текущего выбранного фрейма.
Event List Editor
Ctrl+L
То же самое, что и редактор событий, только здесь события представлены в виде списка.
Frame Editor
Ctrl+M
Откроется окно редактора фрейма для текущего выбранного фрейма.
Copy, Cut, Paste
Ctrl+C, Ctrl+X, Ctrl+V
Стандартные функциональные комбинации для копирования, вырезания и вставки, общепринятые в рабочей среде приложений Windows.
Insert -> New Object
Ctrl+J
Открывает окно выбора объекта для вставки во фрейм.
В системе CTF имеется множество готовых объектов, которые можно выбрать из библиотек в браузере Library Toolbar. Также можно создавать новые объекты на основе имеющихся расширений (Extensions [2]), или по терминологии CTF, объектов.
Типы объектов поделены на категории, которые характеризуют объекты по какому-либо признаку. Например, есть объекты, относящиеся к платформе Android, или объекты, предназначенные для работы с файловой системой, и т. д. Некоторые объекты могут принадлежать нескольким категориям. Например, объект File будет виден и в категории Data, и в категории Files.
В таблице перечислены готовые типы объектов, которые уже имеются в CTF 2.5, сразу после установки системы. Эти объекты доступны, если вызвать диалог через меню Insert -> New Object. В столбце "Имя объекта" указано имя шаблона объекта, для которого можно создать новый объект.
Категория
Имя объекта
Описание
Android
AdMob
Позволяет добавлять рекламу в ваши игры и монетизировать приложение.
Android Camera Object
Часть Android explorer. Предоставляет доступ к функциям камеры.
Android Font Packer
Доступ к функционалу шрифтов Android.
Android InputType
Изменяет метод ввода для Вашего приложения.
Android New Dialog Control v2
Позволяет Вам создавать и изменять под определенные задачи множество аспектов окон диалога (dialog boxes) на платформе Android, включая оповещения.
Android object
Часть Android explorer. Предоставляет доступ к специальному функционалу, когда приложение работает на платформе Android.
Android Old INI object
Часть Android explorer. Клон старого объекта INI, предназначенный для поддержки совместимости со старыми приложениями.
AndroidPlus
Работает вместе с Android explorer. Предоставляет специальный функционал, когда приложение работает на устройстве Android.
Calendar Entries Control
Представляет управление записями в календаре. Записи могут генерировать напоминание о событиях (в зависимости от даты).
ChartBoost v2
Позволяет монетизировать приложения CTF на основе ChartBoost на платформах iOS и Andrpod.
In-App Android
Позволяет делать покупки в приложении (In-App purchases) на платформе Android.
LeadBolt
Отображает объявления (рекламу?) для зарегистрированных пользователей LeadBolt.
OUYA object
Часть Android exporter. Предоставляет специальную функциональность, когда приложение работает в консоли OUYA.
ScreenZoom
Выполняет масштабирование, повороты, анимацию окна и слоев приложения.
Video Android
Предоставляет доступ к функционалу video на платформе Android.
Audio
CD-Audio
Позволяет проигрывать звуковые треки компакт-диска.
Direct Show
Проигрывает файлы видео и звука (MP3, MPEG, AVI и т. д.), или DVD. Использует библиотеку DirectShow компании Microsoft.
MCI
Поддержка стандарта Microsoft для управления любыми мультимедийными устройствами, подключенными к Вашему компьютеру.
Mixer
Дает прямое управление громкостью для звуковых данных и музыкальных файлов MIDI.
Background
Backdrop
Используется для создания фона приложений на основе растровых картинок.
Picture
Отображает картинку как объект фона.
Quick Backdrop
Объект фона, который может выглядеть как строка, прямоугольник или эллипс. Фон может быть заполнен либо сплошным цветом, либо градиентом, либо мотивом. Также можно задать у фона цветную рамку. Объект Quick Backdrop не имеет многих свойств других типов объектов, он не может перемещаться, и не может взаимодействовать с активными объектами. Он просто служит для украшения фона приложения.
Control
Accelerometer object
Получает данные от измерителя ускорения (акселерометр) на тех устройствах, которые это поддерживают (таких как устройства iPhone и многие устройства Android).
Analog Joystick
Позволяет получать информацию от аналоговых джойстиков.
Click Blocker
Блокирует левый, средний и/или правый клики кнопок мыши.
Joystick Control object
Позволяет Вам управлять вводом виртуального джойстика.
Location object
Запрашивает текущее месторасположения от спутниковой системы GPS на системах, которые это поддерживают (таких как устройства iPhone или Android).
Multiple Touch
Возвращает данные касаний по экрану.
Data
Array
Числовой или текстовый массив (поддерживается до 3 измерений).
Counter
Используется для сохранения чисел и отображения их простым способом или с анимацией, как простое число или в виде вертикальной или горизонтальной планки.
DataGrid Object
Предназначен для представления Ваших данных в структурированном виде как таблицы-решетки (grid), так же, как данные представлены в программе Microsoft Excel. Этот объект имеется только в Pro-версии CTF.
Double-Precision Calculator
Позволяет Вам выполнять простые вычисления над числами с плавающей точкой двойной точности (16 значащих цифр). Этот объект имеется только в Pro-версии CTF.
File
Позволяет выполнять базовые файловые операции, такие как переименование, копирование и удаление файлов, создание подкаталогов и запуск внешних приложений.
Search
Осуществляет поиск по текстовым файлам указанного слова или фразы, и сообщает о месте нахождения искомой строки.
Shared Data
Позволяет разным приложениям использовать общие данные (числа и/или текст).
Database
ODBC
Предоставляет прямой способ получения доступа к информации из внешней базы данных.
Files
Explorer
Позволяет добавить в приложение возможность браузера файловой системы. Этот объект имеется только в Pro-версии CTF.
File
Позволяет выполнять базовые файловые операции, такие как переименование, копирование и удаление файлов, создание подкаталогов и запуск внешних приложений.
Search
Осуществляет поиск по текстовым файлам указанного слова или фразы, и сообщает о месте нахождения искомой строки.
Tree Control
Система отображения объектов в виде иерархического дерева (Windows control).
Flash
FGL Flash
Система монетизации приложений FGL для приложений Flash (FGL Ads).
Flash® Player
Предоставляет некоторые действия и условия, полезные для приложений, проигрываемых с помощью Adobe Flash® Player.
FLV
Отображает видео из файла FLV, поступающее через Интернет.
Mochi Analytics
Устаревший объект, предоставленный только по соображениям совместимости.
Mochi Coins
Устаревший объект, предоставленный только по соображениям совместимости.
Mochi Connector
Устаревший объект, предоставленный только по соображениям совместимости. Этот объект нужен для обеспечения функциональности других объектов Mochi.
Mochi Scores
Устаревший объект, предоставленный только по соображениям совместимости.
Mochi Social
Устаревший объект, предоставленный только по соображениям совместимости.
Games
Hi-Score
Представляет записи рейтинга количества очков (top scores) для игры.
Lives
Отображает оставшееся количество "жизней" игрока.
Score
Отслеживает количество очков, которое было набрано в процессе игры, и отображает его на экране.
Graphics And Animations
Active
Анимированный объект.
Active Picture
Используется для отображения файла картинки. Это динамический объект: поддерживаются перемещения, повороты, сжатие/растяжение картинки, и т. п.
Animation
Проигрывает файлы анимации (FLI, GIF, AVI).
Draw object
Позволяет Вам выполнять простые графические операции (рисование точки, линии, прямоугольника, эллипса, применение заливки).
Picture
Отображает файл картинки как объект фона.
Screen Capture object
Позволяет Вам захватить графику областей экрана и сохранить их как графические файлы.
Html5
fgl
Интерфейс с рекламным и игровым API для HTML5.
HTML5
Опции и функции, специфичные для приложений на основе JavaScript и HTML5.
HTML5 Video
Отображает в приложении HTML5 видеофайл, поступающий из сети Интернет.
ScreenZoom
Выполняет масштабирование, повороты, анимацию окна и слоев приложения.
Interface
Active System Box
Отображает области (boxes), кнопки, чекбоксы или гиперссылки с использованием системных или пользовательских цветов.
Background System Box
Отображают области фона с текстом или без него, с использованием системных или пользовательских цветов.
Button
Используется для создания обычных кнопок для клика (push buttons), чек-боксов (галочки), радиокнопок (кнопки выбора одного варианта) и кнопок на основе растровых картинок (bitmap buttons).
Combo Box
Используется для создания простого или выпадающего списка выбора.
Cursor
Позволяет модифицировать курсор мыши (с выбором стандартной картинки для него, или растровой картинки).
DataGrid Object
Предназначен для представления Ваших данных в структурированном виде как таблицы-решетки (grid), так же, как данные представлены в программе Microsoft Excel. Этот объект имеется только в Pro-версии CTF.
DialogBox
Позволяет добавлять окна диалога в приложение. Имеется только в Developer-версии CTF.
Edit Box
Простой бокс для ввода текста.
Explorer
Позволяет добавить в приложение возможность браузера файловой системы. Этот объект имеется только в Pro-версии CTF.
List
Позволяет создавать настраиваемые списки строк в приложении.
List View
Элемент управления (Windows control), разработанный для отображения списка элементов, состоящих из текста, в форме решетки. Этот объект имеется только в Pro-версии CTF.
Popup Menu
Позволяет создавать для приложения настраиваемые всплывающие контекстные меню.
Rich Edit Object
Область ввода текста, поддерживающая расширенное форматирование. Позволяет отображать, загружать, сохранять текст в формате файлов RTF.
Static Text
Простая строка текста, отображаемая как стандартный элемент управления GUI-интерфейса.
Sub-Application
Позволяет Вам вставить в фрейм приложения либо другое приложение, либо другой фрейм.
ToolTip object
Позволяет в приложении отображать окна всплывающих подсказок (balloon windows).
Tree Control
Система отображения объектов в виде иерархического дерева (Windows control).
Window Control
Позволяет управлять окном, которое используется для отображения Вашего приложения.
Window Shape
Используется для модификации формы окна Вашего приложения. Можно применить предварительно заданные формы, или даже маску, заданную с помощью картинки.
Internet
Download object
Позволяет приложению загружать файл из сети Интернет.
Ftp
Позволяет подключиться к файловому серверу Интернет через стандартный протокол FTP.
Vitalize! Plug-in
Позволяет приложению обмениваться с веб-браузером через Vitalize!-плагин.
iOS
Camera
Предоставляет доступ к функциям камеры в приложении, работающем на платформе iOS.
Game Center Achievement
Предоставляет доступ к системе игровых достижений в приложении на платформе iOS.
Game Center Achievements
Game Center Connect
Предоставляет доступ к функциям игрового центра Apple в приложении на платформе iOS.
Game Center Leaderboard
Отображает игровую информацию, показывающую рейтинг игрока по отношению к другим игрокам.
Game Center Multiplayer
Создает многопользовательскую игру (игра с одновременным участием нескольких игроков) на основе игрового центра Apple.
iOS
Предоставляет доступ к дополнительным функциям для iOS-приложений.
iOS Button
Отображает кнопку операционной системы iOS.
iOS Multiple Line Editbox
Отображает многострочный элемент редактирования текста.
iOS Single Line Editbox
Отображает простой (однострочный) элемент редактирования текста.
iOS Store
Предоставляет доступ к покупкам из приложения в онлайн-магазине Apple.
iOS Video
Отображает фильмы на устройствах iOS.
ScreenZoom
Выполняет масштабирование, повороты, анимацию окна и слоев приложения.
Math
Double-Precision Calculator
Позволяет Вам выполнять простые вычисления над числами с плавающей точкой двойной точности (16 значащих цифр). Этот объект имеется только в Pro-версии CTF.
Network
Network
Позволяет приложениям пересылать данные по локальной сети путем открытия канала для обмена между двумя компьютерами.
Other Objects (другие объекты)
Active Backdrop
Позволяет отображать, перемещать и изменять фоновые изображения в приложении. Изображение не мешает игре, так как не генерирует никаких столкновений.
Active Direct Show
Проигрывает файлы видео или звука (MP3, MPEG, AVI и т. п.) в режиме без окна. Использует библиотеку DirectShow компании Microsoft.
ActiveX
Позволяет использовать в приложении элементы управления ActiveX.
Clickteam Movement Controller
Контроллер для перемещений объектов Clickteam.
GraphicFont
Отображает графические шрифты в мобильных приложениях на основе HTML5 или Java.
InAndOut Movement Controller
Контроллер для перемещений In и Out.
Layer object
С помощью слоев позволяет изменить порядок отображения объектов на фрейме. Можно также показывать, скрывать или перемещать слои.
Mobile Utilites
Набор утилит для приложений Java Mobile.
Object Mover
Перемещает все объекты, которые выше этого объекта.
Physics
Physics - Engine
Основная обработка перемещений, которые учитывают законы физики.
Physics - Fan
Генерирует ветер, который может смещать объекты.
Physics - Ground
Определяет основание (земля) для игрового поля.
Physics - Joint
Создает шарнирные соединения между объектами.
Physics - Magnet
Создает притяжение (магнетизм) между объектами.
Physics - Particles
Создает частицы в материальном мире.
Physics - Rope and Chain
Создает веревки, цепочки или мосты в материальном мире.
Physics - Treadmill
Перемещает объекты с постоянной скоростью, в одном направлении.
Printer
Print
Позволяет напечатать экран или область экрана приложения.
Protection
Trial Period Object
Позволяет создавать демо-версии приложения, у которых прекращается нормальная работоспособность после указанного времени.
Storage
Ini
Позволяет сохранять в INI-файлы и считывать обратно оттуда любое значение или текст.
System
OS
Позволяет получить информацию о системе (платформе), на которой работает приложение (имя пользователя, язык, переменные окружения, и т. д.). Этот объект имеется только в Pro-версии CTF.
Registry2
Объект позволяет читать значения из реестра или записывать туда значения.
Text
Formatted Text
Позволяет импортировать текст файлов в формате RTF (Rich Text Format) для отображения этого текста в приложении.
Question & Answer
Отображает вопрос и варианты ответов с возможностью выбора одного из ответов пользователем.
Quiz object
Позволяет создавать сложные викторины (опросы, тесты).
Rich Edit Object
Область ввода текста, поддерживающая расширенное форматирование. Позволяет отображать, загружать, сохранять текст в формате файлов RTF.
String
Используется для сохранения и отображения строки текста. Может содержать в себе несколько строк.
Time
Date & Time
Используется для отображения даты и времени в различных форматах. Может работать как секундомер (stopwatch) или устройство обратного отсчета времени.
Video
AVI
Проигрывает файлы видео в формате AVI.
Direct Show
Проигрывает видеофайлы и звуковые файлы (MP3, MPEG, AVI и т. д.), или DVD. Использует библиотеку DirectShow компании Microsoft.
MPEG
Проигрывает файлы MPEG. Замечание: Вы должны использовать вместо этого объекта объект AVI или DirectShow.
QuickTime
Проигрывает файлы QuickTime и QuickTimeVR.
XNA
XBOX Gamepad
Обеспечивает поддержку геймпада XBOX.
Дополнительно в диалоге Insert -> New Object имеется кнопка Manager, которая вызывает Менеджер Расширений, позволяющий устанавливать дополнительные объекты, которые еще не установлены (Not installed, эти объекты расположены в списке на самом верху). В списке Менеджера Расширений присутствуют также и те объекты, что уже установлены (Installed, up-to-date or undetermined status).
Создание нового объекта:
1. Меню Insert -> New Object. Откроется окно, где можно выбрать тип объекта, выберите нужный тип.
Создание объекта подробно описано в документе "A Guide to Creating Objects in Fusion 2.5" (файл object-creationrev1.pdf), который можно найти на сайте Clickteam Fusion. Перевод этого документа см. в статье "Как создать объект для Clickteam Fusion 2.5".
[Редактор свойств объекта (Properties)]
Редактор свойств может изменять различные свойства объекта, которые разбиты по категориям и находятся на отдельных закладках.
Size/Position. Эта закладка задает начальное положение объекта в окне приложения и его размеры.
Movement. Здесь можно определить, будет ли объект неподвижным (Static), либо получит возможность перемещаться. Например, его можно будет перемещать под управлением мыши (Mouse controlled). Для объекта можно задать прямоугольную область, в которой ему разрешено перемещаться (раздел свойств Edit movement, нажмите кнопку Edit).
Вы запускаете index.html прямо с локального диска, без использования веб-сервера. Экран, который отображается при запуске, дает подсказку по решению проблемы: нужно запустить приложение через меню CTF Run -> Build & Run, при этом запустится локальный веб сервер для загрузки и запуска приложения. Либо возможен второй вариант - нужно скопировать выходной каталог с выгруженным кодом (каталог, где находятся папки resources, src и файл index.html) на какой-либо веб-сервер (Денвер, либо внешний, находящийся в Интернет), и уже оттуда открывать в браузере файл index.html.
Система Clickteam Fusion 2.5 достаточно гибкая, чтобы позволить разработчикам кодировать на C++ для своих расширений. Документация доступна с официальным Extensions SDK (Software Development Kit для расширений).
Extension SDK позволяет Вам создавать совершенно новые расширения для Fusion 2.5 и различные модули экспорта. Всего имеется 5 видов Extensions SDK для различных поддерживаемых платформ:
Загрузите нужный для Вас SDK, и начните разрабатывать свои собственные расширения. Эти расширения могут увеличить быстродействие и функционал Ваших приложений и игр, созданных в системе Fusion 2.5. Созданные Вам расширения смогут поддерживать дополнительные встроенные в платформу функции и использовать существующие SDK и API сторонних фирм.
Расширения можно предоставлять для других пользователей бесплатно либо за деньги с помощью системы Clickstore [5]. В дополнение к разработке новых функций для собственных приложений, Вы также можете зарабатывать путем разработки и продаж самих расширений. Просмотрите текущий список расширений, которые предоставляет магазин Clickstore.
Чтобы начать работать с разработкой расширений, нужно вначале загрузить Windows SDK. Он содержит базовый SDK, который работает в редакторе системы Fusion на рабочей платформе Windows. После того, как завершите разработку своего расширения, Вам нужно будет сконвертировать это расширение для тех платформ, которые Вам нужны.
При компиляции приложения в HTML5 есть 2 варианта: HTML5 Development и HTML5 Final Project. Первый из них дает нормальный, удобочитаемый код Runtime.js. Второй вариант дает код, понятный только для компилятора, однако он получается в несколько раз меньше по размеру.
Устройства USB, с которыми обычно нужно обмениваться данными, это устройства типа USB CDC (виртуальный COM-порт) или USB HID (мыши, клавиатуры, джойстики и другие устройства ввода/вывода). К сожалению, ни в объектах, устанавливаемых вместе с CTF, ни в Clickstore [5] нет таких расширений. Однако есть несколько способов решить задачу.
USB CDC. Есть старое расширение Serial Object, которое было разработано для MMF2. Автор использовал его для обмена с платами Arduino. Теоретически расширение должно работать и в CTF2. Оно бесплатное, можно скачать и использовать: serialobj.zip.
Frame в терминологии CTF это уровень игры. Frame можно рассматривать как "игровое поле" или часть игры. При создании нового приложения (File -> New) система автоматически создает Frame 1.