Why does using self.sprite seem to be hacked? This is absolutely true.
In fact, from the point of view of OOP, SKNode, combining other visible nodes, is a more universal approach.
For example, this allows you to hide the sprite and instead make the particle emitter visible if the player picks up the powerup, which makes it invisible (or very transparent) with just a few bright bits around it.
To achieve this, you will have a radiator as a child of the node symbol. If the node symbol is where the sprite player is, you cannot turn only the invisible sprite, because this will also affect the child emitter.
Therefore, in the end, it is better to aggregate views (visible nodes) rather than subclassing them. Think of the SKNode symbol as a view controller for one or more views (its children, such as sprites, emitters, labels, etc.).
source share