有没有一种简单的方法来模拟场景中的电流?我知道它们在spritekit中提供了重力、质量、密度、阻力和其他属性,但我没有看到的是,我将如何模拟当前影响场景中对象的情况?
IE说,我有一个物体利用重力和密度从屏幕顶部掉到底部,就好像它是从瓦特掉下来的一样,设置应该相当直接。然而,假设我想添加一个从左到右流经场景中间的电流。。。因此,当物体下落时,它开始受到电流的影响,并且下落开始随着电流移动,当它越来越靠近电流中心时,它增加了左/右移动,并且当它穿过电流中心并远离其中心时,左/右运动减慢。
这可能吗?我需要创建不可见/透明的节点随着重力从左向右移动来模拟吗?或者我应该使用不同的方法吗?
这可以在-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];
}
}
}