我正在iPhone上尝试Cocos2D / Box2D中的一些新想法。
我想在圆形(随机?)路径上移动一小群萤火虫......想法是用户可以用网捕捉萤火虫..
我已经考虑过使用重力模拟,但我相信它过于复杂化了......我之前使用Bezier曲线的经验告诉我,这也不是解决方案..
有没有人对我有任何明亮的见解?
非常感谢。
答案 0 :(得分:6)
你需要萤火虫相互碰撞吗?
我问,好像这不是一个要求,Box2D可能对您的需求有些过分。 Cocos2d通过它的声音是一个很好的选择,但我认为你最好不要考虑像boids这样的植绒算法
即使这可能过于复杂。将一些sin和余弦项与一些随机比例因子混合在一起可能就足够了。
你可以有一个sin /余弦组合形成一个几乎与屏幕大小相同的椭圆:
x = halfScreenWidth + cos (t) * halfScreenWidth * randomFactor;
y = halfScreenHeight + sin (t) * halfScreenHeight * randomFactor;
其中randomFactor将在0.6到0.9的范围内。
这将为您提供围绕屏幕的宽椭圆运动,然后您可以添加较小的sin / cos因子,使它们围绕该椭圆上的点旋转。
通过将时间delta(t)乘以不同的值(负数和正数),曲线的路径将以较小的几何方式移动。例如,如果您使用
x = halfScreenWidth + cos (2*t) * halfScreenWidth * randomFactor;
椭圆将变成图8.(我想!)
希望这有助于您入门。祝你好运。
答案 1 :(得分:1)
寻找创意的一个地方将是人造生命领域。他们长期以来一直在模拟成群的实体。这是一个用Java编写的简单swarm代码的链接,它应该给你一些想法。