我想在我正在开发的游戏中添加一个分数到我的场景顶部.得分将取决于你持续多久,并将每秒增加一次.我在这里先向您的帮助表示感谢!
import SpriteKit class easyScene: SKScene { let scrollBarEasyBottom = SKSpriteNode(imageNamed: "scrollBarEasyBottom") let scrollBarEasyTop = SKSpriteNode(imageNamed: "scrollBarEasyTop") let ball = SKSpriteNode(imageNamed: "ball") var origSBEBpositionX = CGFloat(0) var origSBETpositionX = CGFloat(0) var maxSBEBX = CGFloat(0) var SBEBSpeed = 5 var maxSBETX = CGFloat(0) var SBETSpeed = 5 var score = 0 var timer: NSTimer? var scoreText = SKLabelNode(fontNamed: "Kailasa") override func didMovetoView(view: SKView) { println("Easy Scene is the location") self.backgroundColor = UIColor.blackColor() self.scrollBarEasyBottom.position = CGPoint(x:0,y:270) self.addChild(self.scrollBarEasyBottom) self.scrollBarEasyBottom.yScale = 0.2 self.origSBEBpositionX = self.scrollBarEasyBottom.position.x // end scrollBarEasyBottom self.scrollBarEasyTop.position = CGPoint(x:20,y:400) self.addChild(self.scrollBarEasyTop) self.scrollBarEasyTop.yScale = 0.2 self.origSBETpositionX = self.scrollBarEasyTop.position.x // end scrollBarEasyTop self.ball.position = CGPoint(x:40,y:293) self.addChild(self.ball) self.ball.yScale = 0.17 self.ball.xScale = 0.17 // end ball self.maxSBEBX = self.scrollBarEasyBottom.size.width - self.frame.size.width self.maxSBEBX *= -1 self.maxSBETX = self.scrollBarEasyTop.size.width - self.frame.size.width self.maxSBETX *= -1 // self.scoreText.text = "0" self.scoreText.fontSize = 60 self.scoreText.position = CGPoint(x: CGRectGetMidX(self.frame),y: 500) self.scoreText.text = String(self.score) self.addChild(self.scoreText) timer = NSTimer.scheduledTimerWithTimeInterval(1,target: self,selector: Selector("scoreIncrease"),userInfo: nil,repeats: true) func scoreIncrease (){ score++ println(score) } } override func update(currentTime: NSTimeInterval){ if self.scrollBarEasyBottom.position.x <= maxSBEBX + 1200 { self.scrollBarEasyBottom.position.x = self.origSBEBpositionX } if self.scrollBarEasyTop.position.x <= maxSBETX + 1200 { self.scrollBarEasyTop.position.x = self.origSBETpositionX } scrollBarEasyBottom.position.x -= CGFloat(self.SBEBSpeed) scrollBarEasyTop.position.x -= CGFloat(self.SBETSpeed) // moving bars var degreeRotation = CDouble(self.SBEBSpeed) * M_PI / 180 self.ball.zRotation -= CGFloat(degreeRotation) //rotate ball } }
运行此代码之后,我总是得到一个“无法识别的选择器发送到实例错误”.
解决方法
你可以使用这样的一个
var timer = NSTimer() override func viewDidLoad() { scheduledTimerWithTimeInterval() } func scheduledTimerWithTimeInterval(){ // Scheduling timer to Call the function **Countdown** with the interval of 1 seconds timer = NSTimer.scheduledTimerWithTimeInterval(1,selector: Selector("updateCounting"),repeats: true) } func updateCounting(){ NSLog("counting..") }
Swift 3:
var timer = Timer() override func viewDidLoad() { // Use for the app's interface scheduledTimerWithTimeInterval() } override func didMove(to view: SKView) { // As part of a game scheduledTimerWithTimeInterval() } func scheduledTimerWithTimeInterval(){ // Scheduling timer to Call the function **Countdown** with the interval of 1 seconds timer = Timer.scheduledTimer(timeInterval: 1,selector: #selector(self.updateCounting),repeats: true) } func updateCounting(){ NSLog("counting..") }