gpt4 book ai didi

swift - 有没有办法在 SKSpriteNode 中分配和调用变量?

转载 作者:行者123 更新时间:2023-11-30 10:46:45 25 4
gpt4 key购买 nike

我正在尝试创建一个游戏,用户触摸一个球,如果他们触摸的球上有正确的数字,就会增加他们的分数。

我在球上贴了一个标签来显示球号。

当用户按下球时,我希望它检查球上的标签并将其与变量进行比较以查看它们是否匹配。

我尝试调用 myLabel.text 的值,但 xcode 告诉我它无效。

将变量存储到 SKSpriteNode 中的最佳方法是什么,以便当用户按下 SKSpriteNode 时可以进行比较。

谢谢。

这是我的代码-->

func createBallNode(ballNumber: Int) -> SKSpriteNode{
//set up a ball
let ball = SKSpriteNode(imageNamed: "ballimage.png")
ball.size = CGSize(width:200, height:200)
ball.name = "ballSpriteNode"
ball.physicsBody = SKPhysicsBody(rectangleOf: ball.frame.size)
ball.physicsBody?.usesPreciseCollisionDetection = true

let myLabel = SKLabelNode(fontNamed:"Helvetica")
myLabel.text = String(ballNumber)
myLabel.name = "myLabel"
myLabel.fontSize = 80
myLabel.fontColor = UIColor.black
myLabel.position = CGPoint.zero

ball.addChild(myLabel)
return ball
}

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch:UITouch = touches.first!
let positionInScene = touch.location(in: self)
let touchedNode = self.atPoint(positionInScene)

//???

}

最佳答案

使用 childNode(withName:) 查找子标签节点,或者仅更改节点名称 ball.name = "String(ballNumber)" 并检查节点你可能接触过

if let touchedNode = touchedNode, touchedNode.name == correctNumber {
//whatever
}

关于swift - 有没有办法在 SKSpriteNode 中分配和调用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55608829/

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