1
필자의 씬 에디터에는 물리 속성이있는 "redsprite"라는 스프라이트가 있습니다. 정말이 스프라이트를 다음에 사용하고 싶습니다.물리 속성으로 스프라이트를 복제 한 다음 장면에 추가하는 방법은 무엇입니까?
필자는이 스프라이트를 복제하여 물리 특성을 유지하면서 새로운 위치를 유지하고자합니다.
let sprite:SKSpriteNode = (self.childNode(withName: "redsprite") as! SKSpriteNode).copyWithPhysicsBody()
sprite.position = CGPoint(x:100,y:100)
self.addChild(sprite)
스프라이트를 복사하려면 SKSpriteNode 확장을 사용합니다. 나는 그것을 피할 수있는 방법을 찾을 수없는 내가 오류를 이해
Terminating app due to uncaught exception 'Cant add body, already exists in a world', reason: 'Cant add body <SKPhysicsBody> type:<Rectangle> representedObject:[<SKSpriteNode> name:'redsprite' texture:['nil'] position:{100, 100} scale:{1.49, 1.40} size:{149.15391540527344, 140.06228637695312} anchor:{0.5, 0.5} rotation:0.00], already exists in a world'
, 그것은 매우 분명하지만, :
extension SKSpriteNode {
func copyWithPhysicsBody()->SKSpriteNode {
let node = self.copy() as! SKSpriteNode
node.physicsBody = self.physicsBody
return node
}
}
나는이 고전적인 오류가 있습니다.
믿을 수 없을만큼, 그것은 physicsBody의 설정을 복사하지 않습니다, 그것은 보인다. (2017 년 말) 얼마나 웃겨. – Fattie