cross-platform

HaxeFlixel на haxelib

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

Релиз моего порта Flixel

Привет всем!
Последний месяц я в свободное время занимался допиливанием порта Flixel v2.55 (движка для создания 2d-игр) на haxe. Отличительной особенностью этого порта является его ориентация на кроссплатформенность (flash и c++). Специально для этого была переработана система рендеринга (для c++), которая теперь использует метод drawTiles().
Репозиторий проекта находится здесь: https://github.com/Beeblerox/HaxeFlixel. Там же лежит порт Mode demo.

Полиморфные функции. Удобный класс

Я написал класс полиморфных функций и решил поделится. Чтобы понять как задается сигнатура, рекомендую посмотреть http://haxe.ru/node/274

package;
import Type;
/**
 * ...
 * @author Mr.Cheater
 */

 
class PolymorphFunction
{
        static public function create(args:Array<Array<Dynamic>>)
        {
                var hashTable = new Hash<Dynamic>();
                for (i in args) hashTable.set(Std.string(i[0]), i[1]);
                return Reflect.makeVarArgs(function (args:Array<Dynamic>):Dynamic
                {
                        return Reflect.callMethod(null, hashTable.get({
                                var signature = new Array<String>();
                                for (i in args) signature.push(Std.string(Type.typeof(i)));
                                Std.string(signature);
                        }), args);
                });
        }
}

class Main
{
        static var myfunc:Dynamic =  PolymorphFunction.create([
                //The addition of 2 Ints
                [[ValueType.TInt, ValueType.TInt],
                function(a:Int, b:Int)
                {
                        return a + b;
                }]
                ,

RSS-материал