假设我分别在(0,0)和(0,1)处有两个圆圈。
我之间有一个SKPhysicsJoint它运行良好,现在我想在运行时将它们分开2,这意味着物理在游戏中工作。我怎样才能做到这一点?
我已经尝试将锚点设置为(0,0)和(0,2),但有些东西被窃听,虽然我看到联合没有任何影响。
我希望圆圈能够平滑地相互推动,就像弹簧的长度增加一样。
如果我将一个圆圈'传送'到2的距离然后将弹簧固定到它上,那么一切都有效,但是制作一个物理对象传送会导致其他错误,你可以猜到。
答案 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有一个'长度'可以随时间变化的参数。