¿Cómo copiar SKSpriteNode con SKPhysicsBody?
Tengo curiosidad sobre una situación que encontré hoy cuando trataba de desarchivar y copiar unSKSpriteNode
de unoSKScene
a otro. En la salida del patio de juegos a continuación, puede ver que amboslinearDamping
yangularDamping
o no se mantiene después de la copia (parecen estar volviendo a los valores predeterminados)
// PLAYGROUND_SW1.2 - SKSpriteNode Copy
import UIKit
import SpriteKit
// ORIGINAL
let spriteNode = SKSpriteNode()
spriteNode.name = "HAPPY_NODE"
let size = CGSize(width: 55.0, height: 150.0)
let physics = SKPhysicsBody(rectangleOfSize: size)
physics.linearDamping = 0.123
physics.angularDamping = 0.456
spriteNode.physicsBody = physics
// COPY
let spriteCopy = spriteNode.copy() as! SKSpriteNode
// ORIGINAL
spriteNode.name
spriteNode.physicsBody?.linearDamping
spriteNode.physicsBody?.angularDamping
spriteNode.physicsBody?.area
// COPY
spriteCopy.name
spriteCopy.physicsBody?.linearDamping
spriteCopy.physicsBody?.angularDamping
spriteCopy.physicsBody?.area
SALIDA DE JUEGO
No estoy seguro de que estoy copiando esto correctamente, ambosSKSpriteNode
ySKPhysicsBody
conformarse aNSCopying
Si nos fijamos en la salida sobre elarea
propiedad se mantiene después de la copia y que yo sepa esto se basa en elsize
especificado cuando elSKPhysicsBody
fue creado.
¿Alguien puede arrojar algo de luz sobre esto y tal vez me proporcione un puntero sobre cómo debería estar copiando en profundidad unSKSpriteNode
?