【问题标题】:Can I set anchor point of SKPhysicsJoint outside node?我可以在节点外设置 SKPhysicsJoint 的锚点吗?
【发布时间】:2015-05-12 13:11:48
【问题描述】:

假设我在 (0,0) 和 (0,1) 分别有两个圆圈。

我在它们之间有一个 SKPhysicsJoint,它运行良好,现在我想在运行时将它们分开 2,这意味着当物理在游戏中工作时。我怎样才能做到这一点?

我尝试将锚点设置为 (0,0) 和 (0,2),但出现了一些问题,尽管我看到关节没有任何影响。

我想让圆圈之间顺畅地相互推动,就像弹簧的长度增加了一样。

如果我将一个圆圈“传送”到 2 的距离,然后将弹簧固定在它上面,一切正常,但是让物理对象传送会导致其他错误,您可以猜到。

【问题讨论】:

    标签: ios objective-c sprite-kit skphysicsbody skphysicsjoint


    【解决方案1】:

    在添加关节之前,我将第二个对象“传送”到所需位置,然后添加关节,然后“传送”回原始位置。

    代码如下:

    SKSpriteNode* node1 = [_bodies objectAtIndex:loop];
         SKSpriteNode* node2 = [_bodies objectAtIndex:loop-1];
         CGPoint prev1 = node1.position;
         CGPoint prev2 = node2.position;
         node1.position = [((NSValue*)[positions objectAtIndex:loop]) CGPointValue];
         node2.position = [((NSValue*)[positions objectAtIndex:loop-1]) CGPointValue];
         [self AttachPoint:node1  secondPoint:node2 pos1:node1.position pos2:node2.posiiton] ;
         node1.position = prev1;
         node2.position = prev2;
    

    它按原样工作,但我不确定它的效率如何。我希望 SKPhysicsJointSpring 有一个可以随时间改变的“长度”参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-26
      • 2012-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多