2011-11-05 68 views
1
[layer tileGIDAt:position] 

如果我給它一個地圖外的位置,我會得到一個斷言失敗,這是正常的。檢查tile是否存在,但沒有聲明失敗?

我需要一種方法來知道瓷磚何時存在。在運行上面的代碼之前,我沒有得到Assertion Failure,並且在tile不存在的情況下也做其他事情。但我怎麼能? CCTMXLayer類中沒有方法來檢查它嗎?

回答

2

測試是否存在瓷磚,測試該瓦片GID爲0,你可以測試位置在tilemap的這樣前:

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