gpt4 book ai didi

ios - 在 Swift 中触摸 SKSpriteNode 时无法激活代码

转载 作者:行者123 更新时间:2023-11-28 12:52:01 25 4
gpt4 key购买 nike

我试图在按下 Sprite 时让事情发生,但是我在尝试正确识别触摸时遇到了问题。

class GameScene: SKScene {

var optDiceSprite = SKSpriteNode()

override func didMoveToView(view: SKView) {
createOptSprite()
}

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
for touch in touches {
let location = touch.locationInNode(self)
let node = nodeAtPoint(location)

print("NAME OF NODE: \(node.name)")

if (node == optDiceSprite) {
print("WHY U NO WORKY!")
}
}
}

func createOptSprite() {
optDiceSprite = SKSpriteNode(imageNamed: "sound_off")
optDiceSprite.userInteractionEnabled = true
optDiceSprite.position = CGPoint(x: CGRectGetMaxX(self.frame) - 30, y: CGRectGetMinY(self.frame) + 30)
optDiceSprite.setScale(0.5)
addChild(optDiceSprite)
}

它并没有启动 print 语句。在 touchesBegan 方法中运行此代码之前,我全局声明 Sprite ,创建并定位它。

我想做的是,每次用户切换触摸声音图标 Sprite 时,它都会打开和关闭声音效果。

感谢任何帮助!

最佳答案

试试这个

   class GameScene: SKScene {

var optDiceSprite = SKSpriteNode()

override func didMoveToView(view: SKView) {
createOptSprite()
}

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
for touch in touches {
let location = touch.locationInNode(self)
let node = nodeAtPoint(location)

print("NAME OF NODE: \(node.name)")

if (node == optDiceSprite) {
print("WHY U NO WORKY!")
}
}
}

func createOptSprite() {
optDiceSprite = SKSpriteNode(imageNamed: "sound_off")
optDiceSprite.setScale(0.5)
optDiceSprite.position = CGPoint(x: CGRectGetMaxX(self.frame) - 30, y: CGRectGetMinY(self.frame) + 30)
addChild(optDiceSprite)
}

关于ios - 在 Swift 中触摸 SKSpriteNode 时无法激活代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36231253/

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