0
我在Scene/View中設置了UIButton,按鈕顯示ViewController調用Scene的時間。問題是當我點擊按鈕,我的GameScene將被調用,按鈕將仍然存在。我想我以錯誤的方式設置了按鈕。
我想問題是我不能在我的startGame
函數中的button1上調用removeFromSuperview()
函數。如何在SKScene中正確設置UIButton
我該如何解決這個問題?任何幫助表示讚賞!
import Foundation
import SpriteKit
import UIKit
class MenuScene: SKScene {
override init(size: CGSize) {
super.init(size: size)
backgroundColor = SKColor.grayColor()
let label = SKLabelNode(fontNamed: "CourierNewPS-BoldMT")
label.text = "Start Game"
label.fontSize = 40
label.fontColor = SKColor.blackColor()
label.position = CGPoint(x: size.width/2, y: size.height/2)
addChild(label)
}
override func didMoveToView(view: SKView) {
let button1=UIButton(frame: CGRectMake(size.width/2, size.height/2, 300, 100))
button1.backgroundColor = UIColor.greenColor()
button1.setTitleColor(UIColor.blackColor(), forState: .Normal)
button1.setTitle("Unfocused", forState: .Normal)
button1.setTitle("Start", forState: .Focused)
button1.addTarget(self, action: "startGame:", forControlEvents: UIControlEvents.PrimaryActionTriggered)
self.view?.addSubview(button1)
}
func startGame(sender:UIButton) {
let gameView = view! as SKView
gameView.ignoresSiblingOrder = true
let reveal = SKTransition.flipHorizontalWithDuration(0.2)
let scene = GameScene(size: self.size)
gameView.presentScene(scene, transition:reveal)
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
哈,就是這樣。非常感謝!哦,如果我有另一個按鈕 - 我將如何刪除它們。 sender.removeFromSuperview()在這裏不起作用,因爲另一個Button不是發件人。 – user2877744
找到了我上面發佈的問題的答案。我只需要在MenuScene類中定義按鈕。 – user2877744