I ended up using CCDrawNode
to drawn the hexagon myself, this way I have the desired hexagonal touch space, and I don't have to make any extra calculations to check witch hexagon was touched.
Here's the algorithm:
Hexagon::Hexagon(float hexagonWidth, float hexagonHeight, Color4F fillColor)
{
float width = hexagonWidth;
float height = hexagonHeight;
_drawNode = CCDrawNode::create();
Point vertices[6] = {
Point( 0.f, height/2 ),
Point( width*1/4, height ),
Point( width*3/4, height ),
Point( width, height/2 ),
Point( width*3/4, 0.f ),
Point( width*1/4, 0.f )
};
Color4F borderColor = {0.0f, 0.0f, 1.0f, 1.0f};
_drawNode->drawPolygon(vertices, 6, fillColor, 0.f, borderColor);
_drawNode->setAnchorPoint(Point(0.5, 0.5));
}