Сблъсъци на карта на плочки на HaxeFlixel

Разработвам игра в Haxe с HaxeFlixel Framework.

Реших да разделя картата на части, за да мога да зареждам нови области на картата по време на изпълнение (без екран за зареждане). За това поставям всяко парче в екземпляр на FlxTilemap.

Сега забелязах, че когато се опитам да преместя FlxTilemap (като променя свойствата му x и y), откриването на сблъсък (with FlxG.collide(hero, map)) не работи правилно.

За да тествам защо откриването на сблъсък не работи, просто добавих FlxTilemap към сцената и го сблъсках с моя герой:

map = new FlxTilemap();
    var mapData = "";
    for (y in 0...8) {
        for (x in 0...8) {
            mapData += "0,";
        }
        mapData += "\n";
    }

    map.loadMap(mapData, AssetPaths.tuxemon_sprites__png, 16, 16);

    for (x in 0...8) {
        map.setTile(x, 6, SpriteSheet.TILES.FENCE.LOOSE_1_RIGHT);
    }

    for (y in 0...8) {
        map.setTile(6, y, SpriteSheet.TILES.FENCE.LOOSE_1_RIGHT);
    }

    map.setPosition(
        map.x - map.width / 2,
        map.y - map.height / 2
    );

    add(map);

Откриването на сблъсък се обработва в метода update() на състоянието:

override public function update():Void
{
    super.update();

    FlxG.collide(hero, map);
}   

Дали го правя по грешен начин или просто съм пропуснал нещо?

РЕДАКТИРАНЕ:

Изглежда има проблем в откриването на сблъсък на HaxeFlixel. Сблъсъкът ще бъде открит само когато свойствата x и y на FlxObjects са положителни. Искам да имам и отрицателни x/y позиции.

Някой знае ли решение или решение за този проблем?


person Max    schedule 17.11.2014    source източник


Отговори (1)


Опитайте да промените границите на вашето световно пространство. По-конкретно, FlxG.worldBounds.

person haxeguest    schedule 22.11.2014