我正在尝试基于 Balloons.playground (苹果在 WWDC 上展示的)在 Swift 上创建一个非常简单的游戏。 Apple提供了代码:
func fireCannon(cannon: SKNode) {
let balloon = createRandomBalloon()
displayBalloon(balloon, cannon)
fireBalloon(balloon, cannon)
}
let leftBalloonCannon = scene.childNodeWithName("//left_cannon")!
let left = SKAction.runBlock { fireCannon(leftBalloonCannon) }
我也这样做(我想):
func displayFruit(xPos: CGFloat) -> Void {
let fruit = SKSpriteNode(imageNamed: "Banana")
fruit.size = CGSize(width: 100, height: 100)
fruit.position = CGPoint(x:xPos, y: 800)
fruit.physicsBody = SKPhysicsBody(texture: fruit.texture, size: fruit.size)
fruit.physicsBody?.affectedByGravity = true
self.addChild(fruit)
}
let start = SKAction.runBlock { displayFruit(100) }
上面的代码我放在override func didMoveToView(view: SKView)
我收到错误:无法通过从另一个函数捕获来引用本地函数
我知道有非常相同的问题,但那里的解决方案似乎对我没有帮助。 这样做的正确方法是什么? 谢谢!
最佳答案
这是一个本地函数:
override func didMoveToView(view: SKView) {
func displayFruit() {
// ...
}
}
这不是本地函数:
override func didMoveToView(view: SKView) {
// ...
}
func displayFruit() {
// ...
}
让它看起来像第二个。
关于function - Swift - 无法通过从另一个函数捕获来引用本地函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26960266/