我正在制作一个游戏,其中涉及一名骑士,他的盾牌在固定点上旋转。盾牌和骑士必须有不同的物理体,这样它们才能以不同的方式与射弹交互。我正在寻找一种将盾牌连接到骑士的方法,以便他们一起旋转,骑士作为中心点。我小时候曾尝试将盾牌添加到骑士身上,但这会将中心旋转点改变到它们之间的某个位置,导致骑士偏离中心。
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)
最佳答案
您需要一个SKPhysicsJoint
。物理关节有多种类型,它们都允许物理体一起相互作用、一起移动等。例如,一个销可以让两个物理体围绕一个中心固定点旋转。
关于swift - 在 SpriteKit 中附加 SpriteNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31210830/