我正在使用Swift 2.0和Sprite-Kit与Xcode7一起创建一个游戏。我想实现四个紫色的球,它们应该像生命一样。因此,每当球员被击中,他就会输掉一个紫色的球。他们应该并排出现。我想知道是否可以用for loop来显示4个球,而不是硬编码4个球。
let purpleBall = SKSpriteNode(texture: purpleTexture)
purpleBall.position = CGPointMake(self.frame.size.width * 0.65, self.frame.size.height * 0.92)
self.addChild(purpleBall)我还没有成功地让4个球出现在现场。这是我的尝试之一。
for(var i = 0.50; i <= 0.90; i = i + 0.10) {
let purpleBall = SKSpriteNode(texture: purpleTexture)
purpleBall.position = CGPointMake(self.frame.size.width * i, self.frame.size.height * 0.92)
self.addChild(purpleBall)
}这里我得到了一个错误:二进制运算符不能应用于'CGFloat‘和'Double’类型的操作数,是否必须将i转换为CGFloat?这段代码实际上是将4个不同的球并排放置,还是只将单个球移动到每个新位置。
发布于 2015-10-01 16:25:52
您的代码在for循环中有一个off错误。它应该是一个较少的符号,而不是少于或相等的。您的当前代码将创建五个紫色球。
你不应该真的让我等于任何东西,只是一个整数,它让人困惑。您可以像这样重写代码,它也会做同样的事情,而不必担心当前会出现浮点/双错误。请注意,我还将使用一个名为maxBalls和distanceBetweenBalls的常量,这样您就可以轻松地更改球数和距离,而无需进行任何复杂的重写:
let maxBalls = 4
for(var i = 0; i < maxBalls; i++) {
let purpleBall = SKSpriteNode(texture: purpleTexture)
let ballXPosition = .50 + (i * .1)
purpleBall.position = CGPointMake(self.frame.size.width * ballXPosition, self.frame.size.height * 0.92)
self.addChild(purpleBall)这应该可以避免你之前面临的问题,希望这会有所帮助。
https://stackoverflow.com/questions/32892153
复制相似问题