Divide your objects into layers help zPosition property.
The default value is 0.0. The positive z axis is projected toward the viewer so that nodes with larger z values are closer to the viewer. When a node tree is rendered, the height of each node (in absolute coordinates) is calculated and then all nodes in the tree are rendered from smallest z value to largest z value. If multiple nodes share the same z position, those nodes are sorted so that parent nodes are drawn before their children, and siblings are rendered in the order that they appear in their parent’s children array. Hit-testing is processed in the opposite order.
The SKView class’s ignoresSiblingOrder property controls whether node sorting is enabled for nodes at the same z position.
Descendants of an effect node or a crop node are not rendered with other nodes in the same tree. An effect node (SKEffectNode) renders its children into a private framebuffer as a separate node tree, then the composited image is rendered into the tree that contains the effect node. A crop node (SKCropNode) works similarly; it renders the mask separately, then uses the mask to render its actual descendants into the tree that contains the crop node.
Tutorial language programming Swift