gpt4 book ai didi

swift - 如何在函数中引用变量?

转载 作者:行者123 更新时间:2023-11-28 10:01:20 29 4
gpt4 key购买 nike

我如何从另一个函数 (collide) 调用我在一个函数 (hello) 中创建的太阳对象?

func collide() {
if (CGRectIntersectsRect(player.frame, **sun.frame**)) {
[EndGame];
}

func hello() {
let sun = SKSpriteNode(imageNamed: "Sun")
}

最佳答案

你不能 - sun 变量是 hello 函数的局部变量,它不存在于它的作用域之外。

如果 collide 是从 hello 调用的,您可以将它作为参数传递:

func collide(sun: SKSpriteNode) {
if (CGRectIntersectsRect(player.frame, sun.frame)) {
[EndGame];
}
}

func hello() {
let sun = SKSpriteNode(imageNamed: "Sun")
...
collide(sun)
}

否则,如我所想,如果这些是类的实例方法,只需将 sun 变量转换为实例属性即可:

class Test {
private var sun: SKSpriteNode?

func collide(sun: SKSpriteNode) {
if let sun = self.sun {
if (CGRectIntersectsRect(player.frame, sun.frame)) {
[EndGame];
}
}
}

func hello() {
self.sun = SKSpriteNode(imageNamed: "Sun")
}
}

关于swift - 如何在函数中引用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28339569/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com