2

有没有一种简单的方法来模拟场景中的电流?我知道他们在 spritekit 中提供重力、质量、密度、阻力和其他属性,但我没有看到的是,我将如何模拟场景中当前影响的对象?

IE 说我有一个物体使用重力和密度从屏幕顶部下降到底部,就好像它从水里掉下来一样,设置它应该相当简单。但是,假设我想在场景中间添加一个从左到右流动的电流......所以当物体下落时它开始受到电流的影响并且下落开始随着电流移动,并且随着它靠近电流中心时,它会增加其左/右运动,当它通过电流中心并远离其中心时,左/右运动会减慢。

这可能吗?我是否需要创建通过重力从左到右移动的不可见/透明节点来模拟这个?还是我应该使用其他方法?

4

1 回答 1

6

这可以在您的 -update 方法中处理。您可以检查某个节点是否位于某个区域内并对其施加力,就好像它受到电流的影响一样。

编辑:我已经发布了一种方法,您可以根据电流的中心来区分力。

-(void)update:(CFTimeInterval)currentTime
{

        for (SKNode *node in self.children)
        {
            if (node.position.y > 300 && node.position.y < 500) //Let's say the current is between these values, modify to your situation.
            {
                float diff = ABS (node.position.y - 400);//Difference from center of current.
                CGVector force = CGVectorMake(2*(100 - diff), 0);//Variable force
                [node.physicsBody applyForce:force];
            }
        }
}  
于 2014-04-10T15:31:39.180 回答