Тьюториал

Пример или руководство решения какой-либо задачи

CastleDB

CastleDB - это статическая база структурированных данных, для редактирования которых используется одноименный клиент. Данные в CastleDB хранятся в виде JSON файлов, которые можно использовать в проектах на Haxe с помощью библиотеки
castle, значительно упрощающей работу с данными, автоматически генерируя типы данных, хранимых в базе. Кроме использования в проектах на Haxe, есть пример интеграции CastleDB в проектах на Unity - https://blog.kylekukshtel.com/castledb где также используется автоматическая кодогенерация для работы с типизированными данными.

В данном материале я хотел бы рассмотреть работу с редактором CastleDB, в том числе со встроенным в него редактором карт, а также показать небольшой пример интеграции данных в проект на движке Heaps.

Heaps.io

Данный материал написан на основе записей докладов Nicolas Canasse:

  1. Making games with Heaps.io
  2. The tech behind Northgard
  3. Nicolas About Haxe : Heaps.io 2D/3D engine

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

Что такое Heaps?

Heaps - это:

Slack подсказка

Итак вы зашли в slack чат и не знаете, что делать. Начнем...

Макросы Haxe. Автоматическое встраивание ресурсов (assets embedding) 3.

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

Макросы Haxe. Автоматическое встраивание ресурсов (assets embedding) 2.

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

Макросы Haxe. Автоматическое встраивание ресурсов (assets embedding).

Исходники первой статьи с рабочей версией для Haxe 3 и решенным дополнительным заданием тут. В файле Main3.hx можно найти еще пару вариантов getBuildDate с упрощенным синтаксисом из Haxe 3.

Как и ожидалось, первая статья вызвала хоть и не большой, но интерес. И дабы не остужать его, было решено сделать что-то более интересное и полезное. Полезным это будет для flash разработки, но идеи и техники, описанные в статье, можно будет использовать в различного рода макросах. Еще этот макрос я решил писать под Haxe 3. А все потому, что вышел Haxe 3 RC 2 и самое время его скачать и начать использовать, особенно легко это сделать пользователям FlashDevelop, т.к. им достаточно указать папку с Haxe 3 в табе SDK настроек проекта, а для линукса надо всего лишь собрать Haxe из исходников самому. Да и под Haxe 2 макрос отказывался работать со странной ошибкой, которую, видимо, поправили в 3-й версии.

Из названия статьи понятно, что мы будем что-то встраивать, а именно звуки и графику, как самые распространенные ассеты.

Макросы Haxe. Вводная статья.

Все ниже написанное соответствует Haxe 2 и почти верно для Haxe 3. Но работать без изменений будет только во 2-м. Кто адаптирует все примеры на 3-й и поделится с остальными, получит много экспириенса. Так же написанное не претендует на истину в последней инстанции и может содержать ошибки.

Хочу немного рассказать о макросах в Haxe, статья будет именно вводная, попробую рассказать и показать зачем вообще нужны макросы и какие задачи они могут решать в повседневной жизни.
Макросы в Haxe используют неоправданно мало программистов, кого-то отпугивает их синтаксис, кто-то просто не знает, что это и зачем. Все возможности макросов отлично описаны в статье метапрограммирование на википедии. В двух словах скажу: макросы позволяют как модифицировать существующий код (самомодификация кода), так и создавать новый (генерация кода). В этой статье мы попробуем генерировать новый код, но в очень ограниченных масштабах. Такие вещи, как генерация классов или enum-ов или редактирование существующего кода, я не затрону, лишь замечу, что все это возможно в пределах Haxe макросов!

FLASH HAXE GAMING SDK. Их инструменты – теперь наши

Данная статья является вольным переводом статьи FLASH HAXE GAMING SDK, THEIR TOOLS, OUR TOOLS
Примечание: для понимания статьи желательно иметь опыт использования git.

AsWing и модальные окна

В этом простом туториале мы научимся получать данные из модальных (и не только) окон AsWing

Создадим простой класс, показывающий модальное окно...

NME - gm2d - Android - iOS... Настройка среды для кросс-платформенной разработки

Внимание! На момент эта статья уже не актуальна для тех, кто хочет просто установить стабильную версию и начать ей пользоваться. Сейчас всё гораздо проще.
Эта инфа теперь может пригодиться тем, кто хочет устанавливать и собирать версию из СВН или тем, кто хочет чуть глубже разобраться от каких мучений их избавил install-tool который сейчас входит в NME.

Публикую плоды своих изысканий и тестов настройки среды для создания кросс-платформенных проектов на haXe, позволяющих собирать из одного кода приложения для Android, iOS, webOS и конечно стандартных для haXe flash, c++ ...
Основано в основном на статьях с http://gamehaxe.com и на собственном опыте. На момент поставил такую среду на двух машинах и успешно собираю приложения для Android. В iOS тоже собираю, но с ним не всё так гладко пока.
В общем делюсь тем, с чем успел разобраться сам. Итак поехали:

  1. Если вдруг кто еще не поставил, качаем и ставим haXe: http://haxe.org/download
  2. Ставим hxcpp, nme, gm2d через haxelib:
  3. в консоли:

    haxelib install hxcpp
    haxelib install nme
    haxelib install gm2d

    эти первые два шага идентичны и для установки на Mac и на Linux (на Mac нужно еще запустить @haxelib setup@ перед установкой либ)
    дальше то, что связано с компиляций C++ нужно смотреть для каждой отдельной платформы

  4. качаем и ставим VisualStudio C++ Express. Она нужна hxcpp для компиляции сгенеренного C++ кода
  5. Update: Всё! Новые версии NME и HXCPP вышли на haxelib. так что остальную часть этого раздела можно уже не читать, а переходить сразу к настройке и сборке проекта.

haXeAsWing

После почти трехлетнего перерыва вышла бета версия Aswing 2.0

Основные изменения:
- новый скин (LookAndFeel) по умолчанию
- добавлены компоненты JStepper, DateChooser
- добавлен WeightBoxLayout
- багфиксы и мелкие фичи

В библиотеку включен новый проект - порт для haXe под названием haXeAsWing.
Фактически, это ее точная (с минимальными отличиями) копия, и мы можем использовать любой из вариантов на выбор.

upd. paling добавил ссылку на демо компонентов, готовую swf можно посмотреть в папке bin

Что изменилось, и как этим пользоваться?

Генерация номера сборки для проекта

Введение
В настоящее время, я работаю над проектом, одним из основных инструментов, в котором является язык haxe. В качестве среды разработки для haxe, в данном проекте, я использую FlashDevelop. В течение дня, проект собирается множество раз, и надо точно знать, какая сборка, сейчас, выложена в общий доступ. Для этого необходимо нумеровать сборки. Так как, ни в haxe, ни во FlashDevelop стандартного средства генерации номера сборки найдено не было, предлагаю для решения этой задачи, провернуть определённый трюк.

Трюк

Пишем сайт на haXe/PHP - Базы данных

Эксперимента ради я решил написать на haXe свой сайт http://team.flashkarma.com
Когда структура сайта продумана и пора приступать к реализации, первое, с чего стоит начать - База Данных. Традиционно для PHP используется MySQL, т.к. найти хостинг с этой базой данных проще всего. В haXe/PHP для работы с базами есть пакет php.db.*. Для своего удобства я написал простенький класс-обвёртку.

Начинаем работать с hxcpp (haxe c++) и Visual Studio C++ Express

Как я писал ранее, теперь haxe можно компилировать в c++ программы. Однако в интернете я нашел только один источник, касающийся связки haxe и c++ (http://blog.touchmypixel.com/2009/04/our-possible-haxe-c-plans/). Причем данный материал на английском языке и несколько устарел, т.к. ориентирован на версии haxe 2.03 и hxcpp 0.4. На момент же написания данного поста мы имеем haxe 2.04 (уже со встроенной поддержкой с++) и hxcpp 1.0.5, и взаимодействуют они уже немного по-другому.
Мне пришлось немного понервничать, устанавливая все это добро, поэтому я и решил поделится опытом. Приступаем к установке...

RSS-материал