在 Swift 4.2 - 我如何在移动后保持精灵大小(到父级:新父级)
In Swift 4.2 - How can I maintain a sprite size after move(toParent: newParent)
当我将精灵(在本例中为箭头)从一个父级(场景)移动到另一个父级(目标,场景中的精灵)时,箭头正在缩放并改变其大小.我怎样才能避免它?我希望箭头保持其大小。
这是我在场景中添加新箭头时使用的代码:
func newArrow() {
let arrow = SKSpriteNode(imageNamed: "arrow1")
let arrowTexture = SKTexture(imageNamed: "arrow1")
arrow.position = CGPoint.zero
arrow.physicsBody = SKPhysicsBody(texture: arrowTexture, size: arrowTexture.size())
arrow.physicsBody?.isDynamic = true
arrow.physicsBody?.allowsRotation = true
arrow.physicsBody?.affectedByGravity = false
arrow.physicsBody?.friction = 0.2
arrow.physicsBody?.restitution = 0.2
arrow.physicsBody?.linearDamping = 0.1
arrow.physicsBody?.velocity = CGVector(dx: 0, dy: 0)
self.addChild(arrow)
}
这是我将箭头移动到另一个父项时使用的代码:
func arrowCollideWithTarget() {
arrow.move(toParent:target!)
}
感谢@E.Huckabee 我能够解决这个问题。我所做的只是设置目标的比例——您可以通过两种方式进行:
1. 在 'Attributes inspector' 中更改精灵的比例
2. 来自代码 - sprite.xScale = 1.0
sprite.yScale = 1.0
当我将精灵(在本例中为箭头)从一个父级(场景)移动到另一个父级(目标,场景中的精灵)时,箭头正在缩放并改变其大小.我怎样才能避免它?我希望箭头保持其大小。
这是我在场景中添加新箭头时使用的代码:
func newArrow() {
let arrow = SKSpriteNode(imageNamed: "arrow1")
let arrowTexture = SKTexture(imageNamed: "arrow1")
arrow.position = CGPoint.zero
arrow.physicsBody = SKPhysicsBody(texture: arrowTexture, size: arrowTexture.size())
arrow.physicsBody?.isDynamic = true
arrow.physicsBody?.allowsRotation = true
arrow.physicsBody?.affectedByGravity = false
arrow.physicsBody?.friction = 0.2
arrow.physicsBody?.restitution = 0.2
arrow.physicsBody?.linearDamping = 0.1
arrow.physicsBody?.velocity = CGVector(dx: 0, dy: 0)
self.addChild(arrow)
}
这是我将箭头移动到另一个父项时使用的代码:
func arrowCollideWithTarget() {
arrow.move(toParent:target!)
}
感谢@E.Huckabee 我能够解决这个问题。我所做的只是设置目标的比例——您可以通过两种方式进行: 1. 在 'Attributes inspector' 中更改精灵的比例 2. 来自代码 - sprite.xScale = 1.0 sprite.yScale = 1.0