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)