首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HaxeFlixel tilemap碰撞

HaxeFlixel tilemap碰撞
EN

Stack Overflow用户
提问于 2014-11-17 12:26:09
回答 1查看 860关注 0票数 1

我正在用HaxeFlixel框架在Haxe开发一个游戏。

我决定将地图分割成块,这样我就可以在运行时加载映射的新区域(不需要加载屏幕)。为此,我将每个块放入FlxTilemap实例中。

现在我注意到,当我试图移动一个FlxTilemap (通过改变它的xy属性)时,碰撞检测(with FlxG.collide(hero, map))不能正常工作。

为了测试为什么碰撞检测不起作用,我只是在场景中添加了一个FlxTilemap,并与我的英雄相撞:

代码语言:javascript
复制
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()方法中进行的:

代码语言:javascript
复制
override public function update():Void
{
    super.update();

    FlxG.collide(hero, map);
}   

是我做错了还是我错过了什么?

编辑:

在HaxeFlixel碰撞检测中似乎存在一个问题。只有当xy属性的FlxObjects为正时,才会检测到冲突。我也想有负面的x/y职位。

有人知道解决这个问题的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-22 16:22:56

尝试改变你的世界空间的界限。具体来说,FlxG.worldBounds.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26972705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档