检查是否存在没有断言失败的磁贴?

时间:2011-11-05 13:56:20

标签: objective-c cocos2d-iphone

[layer tileGIDAt:position]

如果我在地图之外给它一个位置,我会得到一个断言失败,这是正常的。

我需要一种方法来了解瓷砖何时存在。在运行上面的代码之前,我没有得到断言失败,并且在瓦片不存在的情况下也做其他事情。但我怎么能这样? CCTMXLayer类中没有方法来检查它吗?

1 个答案:

答案 0 :(得分:2)

要测试是否存在图块,请测试图块GID是否为0.在此之前,您可以测试位置是否位于图块图上:

if (position.x < layer.size.width && 
    position.y < layer.size.height &&
    position.x >= 0 && position.y >= 0)
{
    // position is within tilemap layer …

    if ([layer tileGIDAt:position] != 0)
    {
        // tile at position exists …
    }
}