Ich versuche, einfache Verbindungen zwischen zwei SKPhysicsBodies zu erstellen. Aber, sie benehmen sich komisch. Ich bin mir der Tatsache bewusst, dass die Ankerpunkte auf der Szenenkoordinate liegen sollten. Bitte sehen Sie sich den beigefügten Quellcode an.SpriteKit: So erstellen Sie grundlegende Physik Joints
Zum Beispiel ergibt sich so eine feste Verbindung nach dem Anbringen eines kleinen Quadrats an einem Rechteck.
-(void)createFixedJointOnScene:(SKScene*)scene
{
//Adding Rectangle
SKSpriteNode* backBone = [[SKSpriteNode alloc] initWithColor:[UIColor whiteColor] size:CGSizeMake(20, 200)];
backBone.position = CGPointMake(CGRectGetWidth(self.frame)/2.0, CGRectGetHeight(self.frame)/2.0);
backBone.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:backBone.size];
backBone.physicsBody.categoryBitMask = GFPhysicsCategoryRectangle;
backBone.physicsBody.collisionBitMask = GFPhysicsCategoryWorld;
[scene addChild:backBone];
//Adding Square
SKSpriteNode* head = [[SKSpriteNode alloc] initWithColor:[SKColor grayColor] size:CGSizeMake(40, 40)];
head.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:head.size];
head.position = CGPointMake(backBone.position.x, backBone.position.y-40);
head.physicsBody.categoryBitMask = GFPhysicsCategorySquare;
head.physicsBody.collisionBitMask = GFPhysicsCategoryWorld;
[scene addChild:head];
//Pinning Rectangle and Square
NSLog(@"Head position %@", NSStringFromCGPoint(head.position));
SKPhysicsJointFixed* pin =[SKPhysicsJointFixed jointWithBodyA:backBone.physicsBody bodyB:head.physicsBody anchor:head.position];
[self.physicsWorld addJoint:pin];
}
https://dl.dropboxusercontent.com/u/62559842/PhysicsTest.zip
Danke.
mein Beispiel hier überprüfen http://stackoverflow.com/questions/19342417/sprite-kit-pin-joints-appear-to-have-an-incorrect-anchor – DogCoffee
Vielen Dank. – Bavan
@Bavan: Ich habe Ihren Code verwendet, um mit SpriteNodes zu verbinden. Aber es ändert die Position meines Spritenodes. Kannst du mir bitte helfen ? – Nirav