Вам нужны светлячки, чтобы столкнуться друг с другом?
Я спрашиваю, как будто это не является обязательным требованием, Box2D, вероятно, излишним для ваших нужд. Cocos2d - отличный выбор для этого, по звукам, но я думаю, что вам было бы лучше, если бы вы смотрели алгоритмы флокирования, такие как boids
Даже это может быть слишком сложно. Вероятно, будет достаточно смешать несколько терминов греха и косинуса с некоторыми случайными коэффициентами масштабирования.
У вас может быть одна комбинация синус / косинус, образующая эллипс размером почти с экран:
x = halfScreenWidth + cos (t) * halfScreenWidth * randomFactor;
y = halfScreenHeight + sin (t) * halfScreenHeight * randomFactor;
где randomFactor будет чем-то в области от 0,6 до 0,9
Это даст вам широкое эллиптическое движение по экрану, затем вы можете добавить меньший фактор sin / cos, чтобы они вращались вокруг точки на этом эллипсе.
Путем умножения вашей дельты времени (t) на разные значения (отрицательные и положительные) путь кривой будет двигаться менее геометрическим образом. Например, если вы используете
x = halfScreenWidth + cos (2*t) * halfScreenWidth * randomFactor;
эллипс превратится в цифру 8. (я думаю!)
Надеюсь, это поможет вам начать. Удачи.