Moved the opacity-handling code into Ball class and capped the minimum opacity so balls don’t disappear