【问题标题】:Spritekit Simulating fluid currentsSpritekit 模拟流体流
【发布时间】:2014-05-24 09:09:58
【问题描述】:

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

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

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

【问题讨论】:

标签: objective-c sprite-kit physics game-physics fluid-dynamics


【解决方案1】:

这可以在您的 -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];
            }
        }
}  

【讨论】:

  • 这是一个很好的概念。+1。您可以使用相同的代码并应用不同的力变量来模拟河流中的水流。边缘较弱,中部较强。为了让事情变得更有趣,添加一个漩涡,使用 4 个正方形和对角矢量力。
猜你喜欢
  • 2010-12-19
  • 2016-04-02
  • 2010-09-30
  • 2016-03-01
  • 2011-10-21
  • 2011-12-24
  • 1970-01-01
  • 1970-01-01
  • 2014-07-13
相关资源
最近更新 更多