Проверка, существует ли плитка без сбоя утверждения?

#objective-c #cocos2d-iphone

#objective-c #cocos2d-iphone

Вопрос:

 [layer tileGIDAt:position]
  

Если я задаю ей позицию за пределами карты, я получаю сбой утверждения, что просто нормально.

Мне нужен способ узнать, когда плитка существует. Перед запуском приведенного выше кода, чтобы я не получил сбой утверждения, а также для выполнения других действий на случай, если плитка не существует. Но как я могу? Разве в классе CCTMXLayer нет метода для проверки этого?

Ответ №1:

Чтобы проверить, существует ли плитка, проверьте, равен ли GID плитки 0. Перед этим вы можете проверить, находится ли позиция на tilemap как таковая:

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

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