我在搞清楚为什么我的精灵不能在Swift 3和Xcode 8中缩放。我有3个相同的精灵,ball1,ball2和ball3,都在我的GameScene的中心.sks并在游戏运行时完全可见。这是相关的代码;Swift-Scale SKAction not working
var ball1 = SKSpriteNode()
var ball2 = SKSpriteNode()
var ball3 = SKSpriteNode()
var signature = Double()
var scaleFactor = Double()
var score = Double()
let signatureOptions = [1, -1]
ball1 = self.childNode(withName: "ball1") as! SKSpriteNode
ball2 = self.childNode(withName: "ball2") as! SKSpriteNode
ball3 = self.childNode(withName: "ball3") as! SKSpriteNode
func myFunction() {
ball1.position = CGPoint(x: 0, y: 0)
ball2.position = CGPoint(x: 0, y: 0)
ball3.position = CGPoint(x: 0, y: 0)
signature = Double(arc4random_uniform(UInt32(Double(signatureOptions.count))))
scaleFactor = 35/(0.5 + (score/20))
let scaleBall2 = SKAction.scale(by: CGFloat(((100 + scaleFactor) * signature)/100), duration: 1)
let scaleBall3 = SKAction.scale(by: CGFloat((((100 + scaleFactor) * signature)/100) * -1), duration: 1)
ball2.run(scaleBall2)
ball3.run(scaleBall3)
}
myFunction()
运行时,所有的精灵重新定位进行计划,他们都移动到中心。但之后绝对没有任何反应。在我声明签名变量的行中是否存在问题,决定它们是增长还是缩小?因为目前他们都没有这样做,所以如果任何人有任何想知道什么是需要发生的事情,那么我会非常感激。提前致谢。
难道说你的规模行动刚刚返回的值为1,因此不能缩放?不知道“分数”是如何工作的,我很难确切地知道'scaleFactor'会是什么。我能想到的唯一的其他事情,应该是显而易见的,就是你需要在某个时候调用'myFunction()'以获得该块的执行,尽管我相信你已经知道了。 此外 - 为什么这是标题和旋转标记,当它直接与缩放有关? – Dan
所有优点,谢谢。我已经修复了最后调用函数的问题,标题和标签与其他一些问题混为一谈,希望现在所有问题都解决了。得分总是从0开始的一个整数,所以应该不可能有1的值。尽管谢谢你的建议,但这似乎并不是我的问题。 –