gpt4 book ai didi

Swift Sprite 作为可切换的按钮

转载 作者:行者123 更新时间:2023-11-28 05:41:47 26 4
gpt4 key购买 nike

我无法使用 Sprite Kit 使标准 Sprite 具有切换功能。我不想使用 UIButton。

我尝试在 override func touchesBegan 中链接代码,但我被难住了。我根本不习惯 swift,事实证明,使用 spritekit 的按钮非常困难。

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
if (!isEnabled) {
return
}
isSelected = true
if (targetTouchDown != nil && targetTouchDown!.respondsToSelector(actionTouchDown!)) {
UIApplication.sharedApplication().sendAction(actionTouchDown!, to: targetTouchDown, from: self, forEvent: nil)
}
}

我想点击一个 Sprite 并让它改变颜色并将数据发送到两个不同的数组。我有使用其他语言处理数组的经验,所以我不需要帮助,只需接受点击即可。

最佳答案

Warner 创建一个子类并使其可触摸。

import SpriteKit

protocol touchMe: NSObjectProtocol {
func spriteTouched(box: TouchableSprite)
}

class TouchableSprite: SKSpriteNode {
weak var delegate: touchMe!

override init(texture: SKTexture?, color: UIColor, size: CGSize) {
super.init(texture: texture, color: color, size: size)
self.isUserInteractionEnabled = true
}

required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:)has not been implemented")
}

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
delegate.spriteTouched(box: self)
}
}

然后在您的代码中使用 ... 调用它

let restart = TouchableSprite(imageNamed: "mine")
restart.delegate = self

您需要让您的类确认 touchMe 协议(protocol)并添加所需的方法来确认它。

class ViewController, touchMe

必需的方法。

func spriteTouched(box: TouchableSprite) {
print("sprite touched")
}

关于Swift Sprite 作为可切换的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56436992/

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