【发布时间】:2016-11-07 05:56:31
【问题描述】:
实际上,我试图实现与this question 中所做的没有太大不同(缩放精灵,无论它在屏幕上的位置如何,直到它填满屏幕宽度)。请参阅下面的代码:
if touch?.tapCount == 2 {
self.view?.isUserInteractionEnabled = false
mySprite?.sprite.anchorPoint = CGPoint(x: (mySprite?.sprite.position.x)! / self.size.width, y: (mySprite?.sprite.anchorPoint.y)!)
let scaleSpriteAction = SKAction.scaleX(to: self.size.width / (mySprite?.sprite.size.width)!, duration: 0.1)
mySprite!.sprite.run(scaleSpriteAction)
delay(0.1) {
centerPoint = CGPoint(x: mySprite!.sprite.size.width / 2 - (mySprite!.sprite.size.width * mySprite!.sprite.anchorPoint.x), y: mySprite!.sprite.size.height / 2 - (mySprite!.sprite.size.height * mySprite!.sprite.anchorPoint.y))
mySprite!.sprite.physicsBody = SKPhysicsBody(rectangleOf: mySprite!.sprite.size, center: centerPoint)
mySprite!.sprite.physicsBody!.categoryBitMask = mySpriteCategory
mySprite!.sprite.physicsBody!.isDynamic = false
}
}
精灵会展开,但并不总是填满整个屏幕。根据我的观察,当精灵更靠近屏幕的左端或右端时,它会更频繁地发生。在记录延迟前后的精灵位置并意识到它们不同后,我禁用了用户交互,但这并没有改变任何东西。
延迟确保physicsBody 也缩放到全屏宽度。
什么可能导致精灵扩展不一致(并不总是填满屏幕宽度),我怎样才能让它每次都填满整个宽度?
【问题讨论】:
标签: swift sprite-kit swift3