Swift 主菜单按钮 导入SpriteKit 导入游戏工具包 类游戏场景:SKScene{ //标记:-变量 私人var menuBg:SKSpriteNode? 私人var buttonBg:SKSpriteNode? 私有变量:SKEmitterNode? 专用var间隔:CGFloat=140 覆盖func didMove(到视图:SKView){ createMenu() } private func createMenu(){ createBg() createButtons() 播放音乐() createSnow() } private func createButton(buttonText:String,Interv:CGFloat,ButName:String){ 设firstButPosition=CGPoint(x:frame.midX,y:460) 设ButZpos=0.2 设TexZpos=0.3 //创建按钮 buttonBg=SKSpriteNode(图像名为:“menuButton.jpg”) buttonBg?.position=CGPoint(x:firstButPosition.x,y:firstButPosition.y-Interv) 按钮bG?.zPosition=CGFloat(ButZpos) 按钮bG?.xScale=1.35 buttonBg?.name=ButName buttonBg?.isUserInteractionEnabled=true self.addChild(buttonBg!) //Cretae按钮文本 设textNode=SKLabelNode(FontName:“Snell Roundhand”) textNode.text=按钮文本 textNode.fontSize=55 textNode.fontColor=SKColor.purple textNode.position=CGPoint(x:(buttonBg?.position.x)!,y:(buttonBg?.position.y)!-15) textNode.zPosition=CGFloat(textzPos) self.addChild(textNode) } 私有函数createBg(){ menuBg=SKSpriteNode(图像名为:“Bg.jpg”) menuBg?.zPosition=0.0 menuBg?.position=CGPoint(x:frame.midX,y:frame.midY) menuBg?.size.height=frame.size.height menuBg?.size.width=frame.size.width self.addChild(menuBg!) } 私有函数createButtons(){ createButton(buttonText:“播放”,Interv:间隔,ButName:“播放按钮”) createButton(buttonText:“新游戏”,Interv:Interval*2,ButName:“新游戏按钮”) createButton(buttonText:“Mision Select”,Interv:Interval*3,ButName:“MissionButton”) createButton(按钮文本:“通知”,间隔时间*4,但名称:“选项按钮”) createButton(按钮文本:“退出”,中间:间隔*5,但名称:“退出按钮”) } 私有函数createSnow(){ SnowEmitter=SKEmitterNode(文件名为:“MySnow.sks”) SnowEmitter?.position=CGPoint(x:frame.midX,y:frame.maxY) 雪发射器?.zPosition=0.4 SnowEmitter?.targetNode=self self.addChild(SnowEmitter!) } 私人func播放音乐(){ let backgroundSound=SKAudioNode(文件名为:“SoftPiano.mp3”) backgroundSound.autoplayLooped=true self.addChild(背景声音) } 覆盖func TouchesBegind(Touchs:Set,带有事件:UIEvent?){ 用于触摸:触摸中的任何对象{ 让位置=触摸。位置(in:self) } } 覆盖函数touchesend(touchs:Set,带有事件:UIEvent?){ 用于触摸:触摸中的任何对象{ 让位置=触摸。位置(in:self) } } }

Swift 主菜单按钮 导入SpriteKit 导入游戏工具包 类游戏场景:SKScene{ //标记:-变量 私人var menuBg:SKSpriteNode? 私人var buttonBg:SKSpriteNode? 私有变量:SKEmitterNode? 专用var间隔:CGFloat=140 覆盖func didMove(到视图:SKView){ createMenu() } private func createMenu(){ createBg() createButtons() 播放音乐() createSnow() } private func createButton(buttonText:String,Interv:CGFloat,ButName:String){ 设firstButPosition=CGPoint(x:frame.midX,y:460) 设ButZpos=0.2 设TexZpos=0.3 //创建按钮 buttonBg=SKSpriteNode(图像名为:“menuButton.jpg”) buttonBg?.position=CGPoint(x:firstButPosition.x,y:firstButPosition.y-Interv) 按钮bG?.zPosition=CGFloat(ButZpos) 按钮bG?.xScale=1.35 buttonBg?.name=ButName buttonBg?.isUserInteractionEnabled=true self.addChild(buttonBg!) //Cretae按钮文本 设textNode=SKLabelNode(FontName:“Snell Roundhand”) textNode.text=按钮文本 textNode.fontSize=55 textNode.fontColor=SKColor.purple textNode.position=CGPoint(x:(buttonBg?.position.x)!,y:(buttonBg?.position.y)!-15) textNode.zPosition=CGFloat(textzPos) self.addChild(textNode) } 私有函数createBg(){ menuBg=SKSpriteNode(图像名为:“Bg.jpg”) menuBg?.zPosition=0.0 menuBg?.position=CGPoint(x:frame.midX,y:frame.midY) menuBg?.size.height=frame.size.height menuBg?.size.width=frame.size.width self.addChild(menuBg!) } 私有函数createButtons(){ createButton(buttonText:“播放”,Interv:间隔,ButName:“播放按钮”) createButton(buttonText:“新游戏”,Interv:Interval*2,ButName:“新游戏按钮”) createButton(buttonText:“Mision Select”,Interv:Interval*3,ButName:“MissionButton”) createButton(按钮文本:“通知”,间隔时间*4,但名称:“选项按钮”) createButton(按钮文本:“退出”,中间:间隔*5,但名称:“退出按钮”) } 私有函数createSnow(){ SnowEmitter=SKEmitterNode(文件名为:“MySnow.sks”) SnowEmitter?.position=CGPoint(x:frame.midX,y:frame.maxY) 雪发射器?.zPosition=0.4 SnowEmitter?.targetNode=self self.addChild(SnowEmitter!) } 私人func播放音乐(){ let backgroundSound=SKAudioNode(文件名为:“SoftPiano.mp3”) backgroundSound.autoplayLooped=true self.addChild(背景声音) } 覆盖func TouchesBegind(Touchs:Set,带有事件:UIEvent?){ 用于触摸:触摸中的任何对象{ 让位置=触摸。位置(in:self) } } 覆盖函数touchesend(touchs:Set,带有事件:UIEvent?){ 用于触摸:触摸中的任何对象{ 让位置=触摸。位置(in:self) } } },swift,xcode,button,menu,Swift,Xcode,Button,Menu,当我的按钮被触碰时,如何让它们做一些动作?谢谢你的回答。我在大学学习这可能是一个例子: import SpriteKit import GameplayKit class GameScene: SKScene { //MARK: - Variables private var menuBg : SKSpriteNode? private var buttonBg : SKSpriteNode? private var SnowEmitter : SKEmit

当我的按钮被触碰时,如何让它们做一些动作?谢谢你的回答。我在大学学习

这可能是一个例子:

import SpriteKit
import GameplayKit

class GameScene: SKScene {
    //MARK: - Variables
    private var menuBg : SKSpriteNode?

    private var buttonBg : SKSpriteNode?

    private var SnowEmitter : SKEmitterNode?

    private var Interval : CGFloat = 140

    override func didMove(to view: SKView) {
      createMenu()
    }





    private func createMenu(){
        createBg()
        createButtons()
        playMusic()
        createSnow()
    }


    private func createButton(buttonText : String, Interv : CGFloat, ButName : String) {

        let firstButPosition = CGPoint(x: frame.midX, y: 460 )
        let ButZpos = 0.2
        let TexZpos = 0.3

        //Create Button
        buttonBg = SKSpriteNode(imageNamed: "menuButton.jpg")
        buttonBg?.position = CGPoint(x: firstButPosition.x, y: firstButPosition.y - Interv)
        buttonBg?.zPosition = CGFloat(ButZpos)
        buttonBg?.xScale = 1.35
        buttonBg?.name = ButName
        buttonBg?.isUserInteractionEnabled = true
        self.addChild(buttonBg!)

        //Cretae button text
        let textNode = SKLabelNode(fontNamed: "Snell Roundhand")
        textNode.text = buttonText
        textNode.fontSize = 55
        textNode.fontColor = SKColor.purple
        textNode.position = CGPoint(x: (buttonBg?.position.x)!, y: (buttonBg?.position.y)! - 15)
        textNode.zPosition = CGFloat(TexZpos)
        self.addChild(textNode)


    }


    private func createBg(){
        menuBg = SKSpriteNode(imageNamed: "Bg.jpg")
        menuBg?.zPosition = 0.0
        menuBg?.position = CGPoint(x: frame.midX, y: frame.midY)
        menuBg?.size.height = frame.size.height
        menuBg?.size.width = frame.size.width
        self.addChild(menuBg!)
    }

    private func createButtons(){
        createButton(buttonText: "Play", Interv: Interval, ButName: "PlayButton" )
        createButton(buttonText: "New Game", Interv: Interval * 2, ButName: "NewGameButton" )
        createButton(buttonText: "Mision Select", Interv: Interval * 3, ButName: "MissionButton" )
        createButton(buttonText: "Otions", Interv: Interval * 4, ButName: "OptionsButton" )
        createButton(buttonText: "Exit", Interv: Interval * 5, ButName: "ExitButton")
    }

    private func createSnow(){

        SnowEmitter = SKEmitterNode(fileNamed: "MySnow.sks")
        SnowEmitter?.position = CGPoint(x: frame.midX, y: frame.maxY)
        SnowEmitter?.zPosition = 0.4
        SnowEmitter?.targetNode = self
        self.addChild(SnowEmitter!)


    }

    private func playMusic(){
        let backgroundSound = SKAudioNode(fileNamed: "SoftPiano.mp3")
        backgroundSound.autoplayLooped = true
        self.addChild(backgroundSound)
    }






    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

        for touch: AnyObject in touches {
            let location = touch.location(in: self)


        }
    }

    override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
        for touch: AnyObject in touches {
            let location = touch.location(in: self)

        }
    }
}

请为您的问题提供更多信息,以便让人们更好地理解问题。如果您希望使用interface builder中apple提供的按钮,我建议您阅读以下apple文档:。但是,如果您想创建自定义ui元素(如按钮),我建议您看看:
buttonBg.addTarget(self, action: #selector(playMusic(_:)), for: UIControlEvents.touchUpInside)