[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 …
}
}