2011-04-06 75 views
0
使用它们

最近我跟着使用cocos2d的碰撞检测的教程与平铺创建TMX文件:http://www.raywenderlich.com/1186/collisions-and-collectables-how-to-make-a-tile-based-game-with-cocos2d-part-2分配碰撞特性对瓷砖层和在cocos2d

虽然这将是非常有用的,我想还能够检测整个图层上的瓦片的碰撞特性,而不是检测单个瓦片上的碰撞特性。

我注意到在Tiled上,你可以右键点击一个图层,并像使用单个图块一样分配属性。

里面在我的代码的方法我有检查瓷砖的特性的一种方式:

CGPoint tileCoord = [self tileCoordForPosition:position]; 

int tileGid = [invisiblePropertiesLayer tileGIDAt:tileCoord]; 

if(tileGid){ 
    NSDictionary *properties = [theMap propertiesForGID:tileGid]; 

    if(properties){ 
     NSString *collision = [properties valueForKey:@"collidable"]; 
     if(collision && [collision compare:@"true"] == NSOrderedSame) { 
      return; 
     } 
    } 
} 

有没有一种方法,如果我有任何瓷砖特定层上的碰撞,我可以改变这个检查?谢谢!

回答

0

别人告诉我如何在另一个论坛上做到这一点。这很容易:

CGPoint tileCoord = [self tileCoordForPosition:position]; 

int tileGid = [blocksCollidable tileGIDAt:tileCoord]; 

if (tileGid) 
    return;