我使用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,您可以按照正常方式执行任何操作。