Блоги

Макросы 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 макросов!

Знакомимся с Firmament

Недавно Jordan Wambaugh выпустил вторую версию своего движка для написания игр - Firmament. В рамках знакомства с движком я немного помог ему с тестированием и фиксом ошибки с генерацией файла проекта для FD, ну а полученную в процессе информацию и основы для быстрого ознакомления с ним, решил изложить здесь. На память, да и может пригодится кому.

Итак, Firmament - это движок для быстрой и простой разработки 2D-игр.
Автор пока выделяет 3 основные черты:

Кэширование флэш анимации

В первую очередь разрабатывалось для Flash IDE.
Чтобы MovieClip кэшировался нужно в его свойствах заменить базовый класс на AniCache.
При грамотном использовании обеспечивает огромный прирост производительности.
Объект e_bounds - будет служить для выделения нужной облости в AniCache.
https://github.com/AxGord/FlashAniCache
Проект также может служить примером разработки на haxe совместно с Flash IDE.

FlashDevelop-HaXe-Projects-Templates

Дополнительные шаблоны проектов на haxe для FlashDevelop
Включает в себя "HaXe - Flash IDE Project" и "HaXe - NodeJS Project"
https://github.com/AxGord/FlashDevelop-HaXe-Projects-Templates

Box2D на NME?

Попытался портировать туда свою любимую обертку вокруг Box2D - QuickBox2D и столкнулся с рядом траблов, один из которых наличие нескольких разных портов.

Haxe 2.10

Николя аннонсировал Haxe 2.10

Самое важное - Java и C# таргеты (beta).
Похоже, нас ждут интересные времена...

Try Haxe!

Всем привет!

Совсем недавно в гуглгруппе прошла очень интересная тема - онлайн редактор с автокомплитом и сборкой http://try-haxe.aaaliasing.net/
По моему это отличная штука для продвижения haxe. И хотелось бы, чтобы все ее знали и использовали. Проект опенсурс и рад любой помощи.
Кроме автокомплита по ctrl-space, есть и хоткей на сборку ctrl-enter.

П.С. Со своей стороны я закоммитил автору простенький шаринг и поддержку haxelib в проекте. Надеюсь так они скорее появятся.

Расширение

В последней версии народ из NME сделал поддержку динамической генерации аудио на SDL
(для Windows, Mac, Linux, webOS and BlackBerry)

А я вот тем временем досляпал подобное расширение для Android...
В целом, на моем телефоне работоспособно, если кто возьмется проверить буду признателен.

https://github.com/scythianfuego/nme-android-dynamicsound

Негативные комментарии привествуются.

Шаблоны приложения для NME -> Android

По этой статье prevent android from dimming (w/ haxe and nme)
Этот путь подходит для быстрого включения в свой NME проект простых нативных функций или настроек Android, без использования расширений.

1. Создаем файл MainActivity.java в папке проекта, который и будет шаблоном.

Предотвращение угасания экрана:

package ::APP_PACKAGE::;

import android.os.Bundle;
import android.view.WindowManager;

public class MainActivity extends org.haxe.nme.GameActivity {

         protected void onCreate(Bundle state) {
                super.onCreate(state);
                getWindow().addFlags( WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

Aswing под Nme

Прогресс китайской нации не стоит на месте - paling на haxe.org выложил ссылку на бету haXeAsWing, теоретически работающую с NME.

Когда будет время, попробую собрать.

FD под мак/Linux

они разбудили Граника (и откуда у него столько времени и сил?)
http://www.joshuagranick.com/blog/2012/04/06/flashdevelop-for-maclinux-p...

HaxeFlixel на haxelib

Привет всем! Хочу сообщить о том, что мой порт движка для создания 2D-игр Flixel, наконец-то, доступен на haxelib.
Этой новости не случилось бы без помощи товарища Werdn, который написал скрипт для генерации шаблона проекта и разместил библиотеку на lib.haxe.org
Хочу поблагодарить также Джошуа Граника за то, что он передал нам контроль над его версией порта. Так что теперь библиотеку можно установить, вызвав в командной строке "haxelib install flixel".

Ещё одна gui-либа

Долгое время пытался найти простую GUI-либу для haXe, но:

  • "многословность" aswing отпугивает
  • баганутость haXe-версии minimalcomps и невозможность скинования исключает эту либу из списка(UPDATE: с "баганутая" сильно преувеличил)
  • haxeGUI - это вообще кощунство - писать динамически типизированный интерфейс на языке, имеющем богатые средства статической проверки типов. Глючит даже в демках, а как использовать по-человечи (а не только рисовать кнопочки с окошками) - не понятно

WWX 2012 – World Wide haXe

14-15 апреля 2012 года в Париже состоится конференция haXe-разработчиков, организованная при поддержке некоммерческой организации SilexLabs.
Собираюсь туда и я с докладом о новейшем web-фреймворке HaQuery. Постараюсь привезти отчёт. :)
Если кто-то ещё поедет из России, буду рад компании!

UPD: С конференции будет вестись прямая трансляция. Адрес страницы трансляции: http://www.silexlabs.org/wwxstream/

RSS-материал