一尘不染

Swift Spritekit以编程方式添加按钮

swift

如何以编程方式添加一个单击按钮即可执行操作的按钮?将使用什么代码?

我习惯在情节提要中添加一个按钮,然后从那里运行IBAction。


阅读 283

收藏
2020-07-07

共1个答案

一尘不染

在SpriteKit中添加按钮并响应其点击并不像在UIKit中那样容易。基本上,您需要创建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没有内置任何内容。

2020-07-07