gpt4 book ai didi

ios - touchesBegan 局部变量

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

我有一个函数,每 2 秒被重复调用一次,每次从屏幕顶部带来一个具有随机纹理的球。我希望能够在 touchesBegan 中使用这个球,但我不能,因为它是一个局部变量。我试过将它设为全局变量,但这给了我一个错误,说我试图添加一个已经有父级的 skspritenode。任何帮助,将不胜感激。这是我用来放下球的代码。

override func didMoveToView(view: SKView) {

var create = SKAction.runBlock({() in self.createTargets()})
var wait = SKAction.waitForDuration(2)
var waitAndCreateForever = SKAction.repeatActionForever(SKAction.sequence([create, wait]))
self.runAction(waitAndCreateForever)
}

func createTargets() {

let randomx = Int(arc4random_uniform(170) + 290)
var ball = SKSpriteNode(imageNamed: "blueBlue")
ball.zPosition = 0
ball.physicsBody = SKPhysicsBody(circleOfRadius: ball.size.width / 11)
ball.physicsBody?.dynamic = true
ball.size = CGSize(width: ball.size.width / 1.5, height: ball.size.height / 1.5)
let random = Int(arc4random_uniform(35))
let textures = [texture1, texture2, texture3, texture4, texture5, texture6, texture7, texture8, texture9, texture10, texture11, texture12, texture13, texture14, texture15, texture16, texture17, texture18, texture19, texture20, texture21, texture22, texture23, texture24, texture25, texture1, texture7, texture18, texture24, texture25, texture1, texture7, texture18, texture24, texture25]
ball.texture = textures[random]
ball.position = CGPoint(x: randomx, y: 1400)
addChild(ball)

}

最佳答案

局部变量(在函数中)太少。 (一旦退出 createTargets,变量就会被销毁。

全局变量可能太多了。显然,您正在尝试预先创建它。

--> 使用类实例变量。

此外,在 touchesBegan 中,您可以检查正在触摸的节点,并且 - 根据您打算执行的操作 - 可能无需任何变量即可完成。

关于ios - touchesBegan 局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31171864/

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