我最近在Cocos2D中使用了一个关于碰撞检测的教程,用于在平铺中创建的tmx文件:http://www.raywenderlich.com/1186/collisions-and-collectables-how-to-make-a-tile-based-game-with-cocos2d-part-2
虽然这对我非常有用,但我希望能够检测整个图层上图块的碰撞属性,而不仅仅是检测单个图块上的碰撞属性。
我在Tiled上发现你可以右键单击一个图层并像使用单个图块一样分配属性。
在我的代码中的方法内部,我有一种检查tile的属性的方法:
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 :(得分:0)
其他人告诉我如何在另一个论坛上这样做。这很容易:
CGPoint tileCoord = [self tileCoordForPosition:position];
int tileGid = [blocksCollidable tileGIDAt:tileCoord];
if (tileGid)
return;