使用变量更改 CGSize
Change CGSize with a variable
我想用一个变量改变我的 SKNode 的大小,这样它就可以用 for 循环变小。它给我一个错误:
Cannot find an initializer for type 'CGSize' that accepts an argument list of type '(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
}
}
您的代码无效,因为 self.size.width
是 CGFloat
并且 i
是 Double
(与 self.size.height
和 k
相同) . 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
}
}
我 运行 这个 SKAction 代码而不是 ABakerSmith 建议的 for 循环,它看起来更清晰。
var shrinkSun = SKAction.scaleBy(0.5, duration: 2)
self.sun.runAction(shrinkSun)
我想用一个变量改变我的 SKNode 的大小,这样它就可以用 for 循环变小。它给我一个错误:
Cannot find an initializer for type 'CGSize' that accepts an argument list of type '(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
}
}
您的代码无效,因为 self.size.width
是 CGFloat
并且 i
是 Double
(与 self.size.height
和 k
相同) . 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
}
}
我 运行 这个 SKAction 代码而不是 ABakerSmith 建议的 for 循环,它看起来更清晰。
var shrinkSun = SKAction.scaleBy(0.5, duration: 2)
self.sun.runAction(shrinkSun)