getNodeAtBoardPosition(nodes, boardX, boardY, allowInactive, allowUntargetable) {
    if (nodes) {
      if (!_.isArray(nodes)) {
        nodes = [nodes];
      }

      let activeApproximateNode;
      let activeExactNode;
      let inactiveApproximateNode;
      let inactiveExactNode;
      const approximate = boardY !== (boardY | 0);
      for (let i = 0; i < nodes.length; i++) {
        const node = nodes[i];
        const nodeBoardPosition = node.getBoardPosition();
        const nodeBoardX = nodeBoardPosition.x;
        const nodeBoardY = nodeBoardPosition.y;
        const dx = boardX - nodeBoardX;
        const dy = boardY - nodeBoardY;
        const isExactX = dx <= 0.5 && dx >= -0.5;
        const isExactY = dy <= 0.5 && dy >= -0.5;
        const isExact = isExactX && isExactY;
        const isApproximate = approximate && isExactX && !isExactY && dy < 0.5 + CONFIG.TILE_TARGET_PCT && dy > 0.5;
        const isTargetable = !_.isFunction(node.getIsTargetable) || node.getIsTargetable();
        if ((isExact || isApproximate) && (allowUntargetable || isTargetable)) {
          // always return an active node first
          if (!_.isFunction(node.getIsActive) || node.getIsActive()) {
            if (isExact) {
              activeExactNode = node;
            } else if (isTargetable) {
              activeApproximateNode = node;
            }
          } else if (allowInactive) {
            if (isExact) {
              inactiveExactNode = node;
            } else if (isTargetable) {
              inactiveApproximateNode = node;
            }
          }
        }
      }

      return activeExactNode || activeApproximateNode || inactiveExactNode || inactiveApproximateNode;
    }
  }
Return the first cocos node/sprite at a board position. Pass in rounded board x/y values for exact find, and un-rounded board x/y values to find nodes on board approximately.
@param  {cc.Node|Array} nodes
@param  {Number} boardX
@param  {Number} boardY
@param  {Boolean} [allowInactive=false]
@param  {Boolean} [allowUntargetable=false]
@return {cc.Node}