Cocos2d iphone 模拟精灵的黑洞/whirpool行为

Cocos2d iphone 模拟精灵的黑洞/whirpool行为,cocos2d-iphone,physics,game-physics,Cocos2d Iphone,Physics,Game Physics,在我的游戏中,一个强大的力量是吸引所有硬币的漩涡。我知道我有任何cocos2d的moveto/bezierto方法可用,但我不知道如何使它们具有切向和径向速度 额外的困难在于,漩涡中心在每一步都会发生变化,因此所有的运动都必须重新调整。在没有物理引擎的情况下实现这一点的一种方法是使用该算法 这涵盖了围绕漩涡中心的旋转。一旦一个对象围绕漩涡旋转,您所需要做的就是在每一帧将该对象与中心的距离减少一定量。这样它将继续向内移动 唯一棘手的是将物体从初始位置吸进漩涡。需要做很多调整。有了一个物理引擎,那部

在我的游戏中,一个强大的力量是吸引所有硬币的漩涡。我知道我有任何cocos2d的moveto/bezierto方法可用,但我不知道如何使它们具有切向和径向速度


额外的困难在于,漩涡中心在每一步都会发生变化,因此所有的运动都必须重新调整。

在没有物理引擎的情况下实现这一点的一种方法是使用该算法

这涵盖了围绕漩涡中心的旋转。一旦一个对象围绕漩涡旋转,您所需要做的就是在每一帧将该对象与中心的距离减少一定量。这样它将继续向内移动

唯一棘手的是将物体从初始位置吸进漩涡。需要做很多调整。有了一个物理引擎,那部分就自然地来自物理本身,而且看起来总是正确的


手动解决方案不能保证这一点,操作也不能保证这一点,因为这些操作不是为跟踪移动目标而设计的。例如,如果通过将现有移动动作替换为新移动动作来每帧更改一个移动动作,则对象将完全不移动。每次这样做,在新动作开始工作之前都会有1帧的延迟。

我认为box2d演示中有一个吸引子字段。我想你可以看看它的源代码。很确定这是可能的,因为愤怒的小鸟空间使用了box2d.Duplicate的功能?有点,是的,但我想要一个没有box2d的解决方案。为什么?box2d是一个相当好的解决方案,在这种情况下,您肯定不想使用动作。使用Box2D或手动设置对象的动画。Move和bezier动作或任何与此相关的动作都不是针对频繁变化的条件(例如移动目标)而做出的。我有一个影响框和一个景观框。如果项目的边界框与影响框发生碰撞,则每第n帧将检查其移动情况,以便我可以制作一个模拟螺旋的多边形。到达景观框后,精灵将被删除。