检查tile是否存在而没有断言失败


[layer tileGIDAt:position]

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

我需要一种方法来知道tile何时存在。在运行上面的代码,所以我没有得到一个断言失败,也做其他的事情,以防瓷砖不存在。但我怎么能呢?有没有一个方法在CCTMXLayer类检查?

要测试tile是否存在,测试tile的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 …
    }
}

相关内容

最新更新