我想在兩個SKPhysicsBody之間創建簡單的關節。但是,他們行爲怪異。 我很清楚錨點應該在場景座標上。請看附帶的源代碼。SpriteKit:如何創建基礎物理關節
例如,這是一個固定的聯合結果後,如何在矩形上附加一個小方塊。
-(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
謝謝。
檢查我的例子在這裏http://stackoverflow.com/questions/19342417/sprite-kit-pin-joints-appear-to-have-an-incorrect-anchor – DogCoffee
非常感謝你。 – Bavan
@Bavan:我已經使用你的代碼連接到SpriteNodes。但它改變了我的spritenode的位置。你能幫我麼 ? – Nirav