gpt4 book ai didi

ios - 在 Swift SpriteKit 中使用 SKLabelNode 作为父级创建一个按钮

转载 作者:行者123 更新时间:2023-11-28 05:27:49 25 4
gpt4 key购买 nike

我正在尝试为 SpriteKit 中的按钮创建 SKLabelNode 的子类。我尝试使用 SKLabelNode 作为父级创建一个按钮,这样我就可以在创建按钮时使用我所知道的关于标签的一切(字体、文本大小、文本颜色、位置等)。

我调查了 Swift Spritekit Adding Button Programaticly我正在使用上面所说的基础,而是创建一个子类而不是变量,并且我正在使用标签代码创建按钮。该子类具有添加的功能,允许它被点击并触发一个 Action 。

class StartScene: SKScene {

class myButton: SKLabelNode {

override func touchesEnded(touches: Set<NSObject>, withEvent event: UIEvent) {
for touch: AnyObject in touches {
let location = touch.locationInNode(self)
if myButton.containsPoint(location) {

// Action code here
}
}
}
}

override func didMoveToView(view: SKView) {

let startGameBtn = myButton(fontNamed: "Copperplate-Light")
startGameBtn.text = "Start Game"
startGameBtn.fontColor = SKColor.blackColor()
startGameBtn.fontSize = 42
startGameBtn.position = CGPointMake(frame.size.width/2, frame.size.height * 0.5)
addChild(startGameBtn)

}
}

我的错误是:if myButton.containsPoint(location)

错误显示:无法使用“(CGPoint)”类型的参数列表调用“containsPoint”

我知道它与我的子类有关,但我不知 Prop 体是什么。

我也试过在 myButton.containsPoint(location) 周围加上括号,如下所示:

if (myButton.containsPoint(location))

但随后出现错误:“CGPoint”不可转换为“SKNode”

谢谢

最佳答案

我有一个替代解决方案,其工作方式相同。更改以下代码

if myButton.containsPoint(location) {

为此,它应该编译并具有相同的功能

if self.position == location {

关于ios - 在 Swift SpriteKit 中使用 SKLabelNode 作为父级创建一个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30405129/

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