Разработвам игра в 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
на FlxObject
s са положителни. Искам да имам и отрицателни x
/y
позиции.
Някой знае ли решение или решение за този проблем?