After much time spent reviewing the Apple Documentation, I found the answer. The restitution
property on the SKPhysicsBody
controls how much energy is lost when that body collides with others. This property is a float that is in the range of [0 ... 1]
, which inversely correlates to the amount of energy lost in collisions (the higher the number, the less energy lost). For example, the default value of this property is .2
, representing a rather high energy loss. To solve my problem, I set this property to 1
on each of my bodies so when they interact, no energy is lost.
self.someNode.physicsBody.restitution = 1.0f;
The Results: This fixed the problem 100% and after several hours of simulation, the physics bodies lose no energy at all.