SKSprite节点按钮在被按下时不会像UIButton那样做出反应.敏捷的

  • 本文关键字:UIButton 按钮 节点 SKSprite swift
  • 更新时间 :
  • 英文 :


我使用Sprite Kit和Swift在Xcode中创建了一个游戏。然而,当我创建按钮时,每次按下它们时,它们看起来都不像是被按下的(高亮显示)。我该怎么做才能让按钮像普通的UIButton一样对触摸做出反应。附件是我的游戏中一个例子的代码。

let next = SKSpriteNode(imageNamed: "next")
next.size = CGSizeMake(50, 25)
    next.position = CGPoint(x: size.width/1.1, y: size.height/7.5)
    next.name = "next"
    next.alpha = 1.0
    addChild(next)

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
    let location = touches.anyObject()?.locationInNode(self)
    var node = self.nodeAtPoint(location!)
    if node.name == "next" {

        runAction(SKAction.sequence([
            SKAction.waitForDuration(0.0),
            SKAction.runBlock() {
                let reveal = SKTransition.moveInWithDirection(SKTransitionDirection.Right, duration: 0.2)
                let scene = StageSelectTwo(size: self.size)
                self.view?.presentScene(scene, transition:reveal)
            }
            ]))
    }

您制作的不是按钮,而是一个SKSpriteNode,当您触摸它时它会做一些事情。由于它不是按钮,因此它不会继承与按钮相关的功能,例如高亮效果。

我建议你去main.storyboard,在你展示SKScene的视图中拖动一个UIButton。这样,它就会像一个按钮一样,突出显示功能。

您将该按钮链接到视图控制器中的IBAction,您可以按照正常方式执行任何操作。

相关内容

最新更新