我正在用 SpriteKit 制作一个游戏,我写这个是为了制作一个移动的背景:
let spaceMovement = SKAction.moveBy(CGVector(dx:0, dy:-bg1.frame.size.height), duration: NSTimeInterval(0.4 * bg1.frame.size.height))
let resetSpace = SKAction.moveBy(CGVector(dx:0, dy:bg1.frame.size.height), duration: 0.0)
let repeatSpaceMovement = SKAction.repeatActionForever(SKAction.sequence([spaceMovement, resetSpace]))
for var i:CGFloat = 0; i < self.frame.size.height / (bg1.size.height); i++
{
let sprite = self.bg1;
sprite.zPosition = -20
sprite.position = CGPointMake(sprite.size.width/2, i * sprite.size.height)
sprite.runAction(repeatSpaceMovement)
self.addChild(sprite)
}
但它给了我这个错误:
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
最佳答案
我认为您缺少一个 .frame,所以您最终除以 0?也许你的意思是:
for var i:CGFloat = 0; i < self.frame.size.height / (bg1.frame.size.height); i++
另外,不要使用 C++ 风格的循环。他们要走了,他们很丑。这个怎么样?它的行为应该相同。
for i in (0..<self.frame.size.height / bg1.frame.size.height) {
...
}
关于ios - for 循环错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36365129/