如何以编程方式添加一个单击按钮即可执行操作的按钮?将使用什么代码?
我习惯在情节提要中添加一个按钮,然后从那里运行IBAction。
在SpriteKit中添加按钮并响应其点击并不像在UIKit中那样容易。基本上,您需要创建SKNode某种类型的对象,以绘制您的按钮,然后检查场景中记录的触摸是否在该节点的范围内。
SKNode
一个非常简单的场景,中心只有一个红色矩形作为按钮,看起来像这样:
class ButtonTestScene: SKScene { var button: SKNode! = nil override func didMoveToView(view: SKView) { // Create a simple red rectangle that's 100x44 button = SKSpriteNode(color: SKColor.redColor(), size: CGSize(width: 100, height: 44)) // Put it in the center of the scene button.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame)); self.addChild(button) } override func touchesEnded(touches: NSSet, withEvent event: UIEvent) { // Loop over all the touches in this event for touch: AnyObject in touches { // Get the location of the touch in this scene let location = touch.locationInNode(self) // Check if the location of the touch is within the button's bounds if button.containsPoint(location) { println("tapped!") } } } }
如果您需要一个外观和动画效果类似于UIKit中的按钮,则需要自己实现;SpriteKit没有内置任何内容。