the mobile controls are a result of one night's procrastination; glad to hear it worked smoothly :D
the main things about the firefly are:
- she circles around the center point
- center point lags a bit behind the player using lerp()
- we don't change her position directly, only velocity (with max limit set)
- she actually has a real physics body that's avoiding collisions with walls
- the wall avoidance doesn't work all the time successfully, so there's a wall-sliding recovery for that, and, as a last resort, teleportation if she's stuck far away from the player for a set amount of seconds) :D