查找移动精灵和移动平铺贴图之间的碰撞

时间:2013-04-16 20:34:08

标签: iphone cocos2d-iphone layer

我正在cocos2d开发一个基于图块地图的游戏。在这里我需要找到移动精灵和瓦片地图层之间的碰撞。我按照了raywindlich教程。我在游戏中缩放了瓷砖地图。即。 tilemap.scale=0.5;

请帮我找到精灵与地图图层的碰撞。

1 个答案:

答案 0 :(得分:1)

这是我用来获取给定图层和屏幕中某个点的图块ID的函数。它牢记设备比例因子。

- (int) getTileGIDMap:(CCTMXTiledMap *) map atLayer:(NSString *) layer andPosition:(CGPoint) position {
    int GID = 0;

    CCTMXLayer *mapLayer1 = [map layerNamed:layer];
    int mapX = position.x * CC_CONTENT_SCALE_FACTOR() / (mapLayer1.mapTileSize.width);
    int mapY = mapLayer1.layerSize.height - (position.y - map.position.y) * CC_CONTENT_SCALE_FACTOR() / mapLayer1.mapTileSize.height;

    if (mapX >= 0 && mapY >= 0 && mapY < map.mapSize.height) {
        GID = [mapLayer1 tileGIDAt:ccp(mapX, mapY)];
    }

    return GID;
}

希望有所帮助