在 Swift 中触摸 SKSpriteNode 时无法激活代码
Can't activate code when SKSpriteNode is touched in Swift
我试图在按下 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 方法中此代码 运行 之前创建并定位它。
我想做的是每次用户切换触摸声音图标精灵时,它都会打开和关闭声音效果。
感谢任何帮助!
试试这个
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)
}
我试图在按下 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 方法中此代码 运行 之前创建并定位它。
我想做的是每次用户切换触摸声音图标精灵时,它都会打开和关闭声音效果。
感谢任何帮助!
试试这个
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)
}