Ste*_*ves 2 ios sprite-kit swift
刚刚使用Swift进入iOS上的SpriteKit.我在教程中有一个'Breakout'游戏,我希望在每个球发射之前实现倒计时,在屏幕中间放置一个SKLabel,从5到1倒数,然后自行移动并开始游戏.倒计时正在进行中,你可以看到完整的游戏画面,包括墙壁,固定球等.
我无法解决游戏循环中的位置.如果我在didMoveToView(我创建墙并初始化球和桨)的倒计时,我从来没有看到它,但我在日志中看到我的调试消息.我想在呈现SKScene之前调用了didMoveToView.
我试图在第一次调用"更新"时使用一个标志来调用倒计时功能,但我再次看到在屏幕上出现任何内容之前执行了倒计时 - 我认为在渲染场景之前最初会调用"更新".
我可以在另一个SKScene中实现"点按屏幕开始"屏幕,但我真的想在屏幕上倒计时,墙壁和(静止)球准备好了.我可以使用游戏画面的背景图像创建这个倒计时场景,但这看起来很尴尬.
感激地收到任何建议,
史蒂夫
添加了这些功能并countdown(5)在最后添加了一个调用didMoveToView
func countdown(count: Int) {
countdownLabel.horizontalAlignmentMode = .Center
countdownLabel.verticalAlignmentMode = .Baseline
countdownLabel.position = CGPoint(x: size.width/2, y: size.height*(1/3))
countdownLabel.fontColor = SKColor.whiteColor()
countdownLabel.fontSize = size.height / 30
countdownLabel.zPosition = 100
countdownLabel.text = "Launching ball in \(count)..."
addChild(countdownLabel)
let counterDecrement = SKAction.sequence([SKAction.waitForDuration(1.0),
SKAction.runBlock(countdownAction)])
runAction(SKAction.sequence([SKAction.repeatAction(counterDecrement, count: 5),
SKAction.runBlock(endCountdown)]))
}
func countdownAction() {
count--
countdownLabel.text = "Launching ball in \(count)..."
}
func endCountdown() {
countdownLabel.removeFromParent()
ball.physicsBody!.applyImpulse(CGVectorMake(20, 20))
}
Run Code Online (Sandbox Code Playgroud)
因此,我创建并设置倒计时的文本,然后创建并运行等待1秒的SKAction,然后再减少倒计时并更新标签.它重复这5次,然后删除倒计时标签,最后给球一个冲动,开始它移动,所以游戏本身可以开始.
似乎工作正常......
| 归档时间: |
|
| 查看次数: |
940 次 |
| 最近记录: |