用变量更改CGSize

时间:2015-06-19 00:30:58

标签: swift core-graphics skaction

我想用变量改变我的SKNode的大小,因此可以使用for循环将其缩小。它给了我一个错误:

  

找不到类型'CGSize'的初始值设定项,它接受类型'(width:...,height:...)'的参数列表

for (var i = 0.9; i > 0.0; i -= 0.1){
           for (var k = 1.25; i > 0.0; i -= 0.1){

                self.sun.size = CGSize(width: self.size.width * i, height: self.size.height * k) // error here
        } 
}   

2 个答案:

答案 0 :(得分:0)

您的代码无效,因为self.size.widthCGFloatiDouble(与self.size.heightk相同)。 CGFloat不能乘以Double。请尝试下面的代码。

for (var i = CGFloat(0.9); i > 0.0; i -= 0.1){
        for (var k = CGFloat(1.25); i > 0.0; i -= 0.1){

            self.sun.size = CGSize(width: self.size.width * i, height: self.size.height * k) // error here
        }
    }

我已经使用Xcode 7和Swift 2.0进行了测试。如果出现问题,下面的代码肯定会有效

for (var i = 0.9; i > 0.0; i -= 0.1){
       for (var k = 1.25; i > 0.0; i -= 0.1){

            self.sun.size = CGSize(width: self.size.width * CGFloat(i), height: self.size.height * CGFloat(k)) // error here
    } 
}   

答案 1 :(得分:0)

我运行了这个SKAction代码而不是ABakerSmith建议的for循环,它看起来更清晰。

var shrinkSun = SKAction.scaleBy(0.5, duration: 2)
self.sun.runAction(shrinkSun)