2014-02-11 3 views
4

Используя шприцы физики spritekit, как вы могли бы сделать объект орбитой другой на фиксированном расстоянии?SKPhysicsJoint разрешает орбиту вокруг неподвижной точки

Объектно-A, не должен двигаться Object-B, должны орбиты объекта-А, когда сила прикладывается к нему

Для достижения этой цели я попытался прилагаю предел SKPhysicsJointLimit между двумя физическими телами, а затем применить силу для объекта-B. Я считаю поведение, которое является нечетным, но это может быть не так ... Какими результатами является то, что Object-B дрожит, но продолжается навсегда и, похоже, не ограничивается Object-A, который вообще не перемещается ,

+0

У меня есть идеи, как реализовать это, используя другие методы. Меня интересуют ответы на вопросы о SKPhysicsJoints, чтобы лучше понять, как они работают. – nacross

+0

Для тех, кто ищет альтернативные подходы к SKPhysicsJoints. Я закончил использование followPath: duration: action. Это также похоже на другой действительный подход - http://stackoverflow.com/questions/19045067/is-it-possible-to-rotate-a-node-around-an-arbitrary-point-in-spritekit?rq= 1 – nacross

+0

Получали ли вы какие-то весенние эффекты, используя эту реализацию? –

ответ

0

Если вы посмотрите на это question, вы увидите, что это противоположность того, что вы просите.

SKSpriteNode * ObjectA = [SKSpriteNode spriteNodeWithColor:[UIColor blackColor] size: CGSizeMake(5,5)]; 
ObjectA.position = CGPointMake(size.width/2,size.height/2); 
ObjectA.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:ObjectA.size]; 
ObjectA.physicsBody.affectedByGravity = NO; 
ObjectA.physicsBody.dynamic = NO; 


SKSpriteNode * ObjectB = [SKSpriteNode spriteNodeWithColor:[UIColor blackColor] size: CGSizeMake(5,5)]; 
ObjectB.position = CGPointMake(size.width/2,size.height/4); 
ObjectB.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:ObjectB.size]; 
ObjectB.physicsBody.affectedByGravity = YES; 
ObjectB.physicsBody.dynamic = YES; 


SKPhysicsJointPin *centerPin = [SKPhysicsJointPin jointWithBodyA: ObjectA.physicsBody bodyB: ObjectB.physicsBody anchor: ObjectA.position]; 


[self addChild: ObjectA]; 
[self addChild: ObjectB]; 
[self.scene.physicsWorld addJoint:centerPin]; 

This статья очень помогла с настройкой размера.

Надеюсь, это поможет.

+0

Спасибо за ваш ответ, я попробую его в ближайшее время. – nacross

Смежные вопросы