我试图在Swift上创建一个基于Balloons.playground的变化简单游戏(Apple在WWDC上展示)。 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)
我收到错误:无法通过其他函数捕获来引用本地函数
我知道有很多相同的问题,但那里的解决方案似乎对我没有帮助。 这样做的正确方法是什么? 谢谢!
答案 0 :(得分:1)
这是一个本地功能:
override func didMoveToView(view: SKView) {
func displayFruit() {
// ...
}
}
这不是本地功能:
override func didMoveToView(view: SKView) {
// ...
}
func displayFruit() {
// ...
}
让它看起来像第二个。