我可以在节点外设置 SKPhysicsJoint 的锚点吗?
Can I set anchor point of SKPhysicsJoint outside node?
假设我有两个圆圈,分别位于 (0,0) 和 (0,1)。
我在它们之间有一个 SKPhysicsJoint,它运行良好,现在我想在运行时以 2 的距离将它们分开,这意味着当物理在游戏中运行时。我怎样才能做到这一点?
我试过将锚点设置为 (0,0) 和 (0,2),但出现了问题,虽然我看到关节没有任何影响。
我希望圆圈之间可以平滑地相互推动,就好像 spring 的长度增加了一样。
如果我绕 'teleport' 到 2 的距离然后将 spring 锚定到它,一切正常,但是让物理对象传送会导致其他错误,您可以猜到。
在添加关节之前我'teleported'把第二个物体放到想要的位置,然后添加关节然后'teleported'回到原来的位置。
这是代码片段:
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 有一个可以随时间改变的 'length' 参数。
假设我有两个圆圈,分别位于 (0,0) 和 (0,1)。
我在它们之间有一个 SKPhysicsJoint,它运行良好,现在我想在运行时以 2 的距离将它们分开,这意味着当物理在游戏中运行时。我怎样才能做到这一点?
我试过将锚点设置为 (0,0) 和 (0,2),但出现了问题,虽然我看到关节没有任何影响。
我希望圆圈之间可以平滑地相互推动,就好像 spring 的长度增加了一样。
如果我绕 'teleport' 到 2 的距离然后将 spring 锚定到它,一切正常,但是让物理对象传送会导致其他错误,您可以猜到。
在添加关节之前我'teleported'把第二个物体放到想要的位置,然后添加关节然后'teleported'回到原来的位置。
这是代码片段:
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 有一个可以随时间改变的 'length' 参数。