我可以在节点外设置SKPhysicsJoint的锚点吗?

时间:2015-05-12 13:11:49

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

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

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

我已经尝试将锚点设置为(0,0)和(0,2),但有些东西被窃听,虽然我看到联合没有任何影响。

我希望圆圈能够平滑地相互推动,就像弹簧的长度增加一样。

如果我将一个圆圈'传送'到2的距离然后将弹簧固定到它上,那么一切都有效,但是制作一个物理对象传送会导致其他错误,你可以猜到。

1 个答案:

答案 0 :(得分:0)

在添加关节之前,我已经传送了#'将第二个物体移动到所需位置,然后添加关节,然后传送“#”;回到原来的位置。

以下是代码片段:

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有一个'长度'可以随时间变化的参数。