2015-07-03 3 views
1

Я делаю игру, в которой участвует рыцарь со щитом, вращающимся на неподвижной точке. Щит и рыцарь должны иметь разные физические тела, чтобы они могли взаимодействовать с снарядами по-разному. Я ищу способ привязать щит к рыцарю, чтобы они вращались вместе, и рыцарь действовал как центр. Я пытался добавить щит к рыцарю в детстве, но это меняет точку поворота центра где-то между ними, заставляя рыцаря покидать центр.Прикрепление SpriteNodes в SpriteKit

 var knight = SKSpriteNode() 
     var shield = SKSpriteNode()   

     // KNIGHT 

     var knightSkin = SKTexture(imageNamed: "PlaceholderKnight.png") 

     knight = SKSpriteNode(texture: knightSkin) 
     let knightResize = SKAction.scaleBy(0.6, duration: 0.0) 
     knight.runAction(knightResize) 
     knight.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame)) 
     knight.zPosition = 100 

     let knightSize = CGSizeMake(knight.frame.size.width, knight.frame.size.height) 
     knight.physicsBody = SKPhysicsBody(rectangleOfSize: knightSize) 

     self.addChild(knight) 

     // SHIELD 

     var shieldSkin = SKTexture(imageNamed: "PlaceholderShield.png") 

     shield = SKSpriteNode(texture: shieldSkin) 
     shield.zPosition = 100 

     let shieldSize = CGSizeMake(shield.frame.size.width, shield.frame.size.height) 
     shield.physicsBody = SKPhysicsBody(rectangleOfSize: shieldSize) 

     knight.addChild(shield) 
+0

Вам нужно будет настроить точку актера щита. –

+0

@EpicByte anchor point – 0x141E

+0

@ 0x141E Упс хороший улов, не могу редактировать мой комментарий, хотя: | –

ответ

1

Вы хотите SKPhysicsJoint. Существует несколько типов физиологических суставов, и все они позволяют физическим телам взаимодействовать вместе, двигаться вместе и т. Д. Например, штырь позволит двум физическим телам вращаться вокруг центральной неподвижной точки.

Apple Develop Page: SKPhysicsJoint

SKPhysicsJointPin Explanation

+0

Я не хочу, чтобы они вращались вокруг центральной точки. Я хочу, чтобы рыцарь был центром. Щит будет просто «привязан» к нему. Можно ли использовать SKPhysicsJointFixed для этого? Я уже возился с этим раньше, но мне не повезло. – Casey

+0

Да, фиксированное соединение означает, что они просто движутся вместе, как если бы они были одним физическим телом. Я просто связал пример Pin, потому что я не знаю, что у вас конкретные потребности. Но вам, конечно же, нужен физический сустав, чтобы два физических тела двигались вместе. –

+0

Спасибо. Я дам это другому. – Casey

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