ゲームの開始時にノードが2〜3秒間落ちるのを止めようとしています。だから私の問題は、私はノードが既に画面の途中にあることを開始するときです。私はまた、ノードの高さを変更しようと試みましたが、私はFPSが低すぎるように注意したいので、コストのかかるソリューションのように思えます。私のコードでは、didMoveToViewでこれを実行しようとしていますが、waitForDurationを使用していますが、動作しません。SpriteKit Scene(SWIFT)でdidMoveToViewのwaitForDurationを使用して、スポーンノードを遅延しようとしましたが、動作しません。
Example Image of Nodes Falling Down
どれSpriteKitベースのマスターは、私が何をすべきか知っていますか?私はスイフトを使用しています。
override func didMoveToView(view: SKView) {
let wait = SKAction.waitForDuration(2.5)
let run = SKAction.runBlock {
self.spawnNumbers()
}
numContainer.runAction(SKAction.sequence([wait, run]))
}
func spawnNumbers() {
let minValue = self.size.width/8
let maxValue = self.size.width - 36
let spawnPoint = CGFloat(arc4random_uniform(UInt32(maxValue - minValue)))
let action = SKAction.moveToY(-300, duration: 2)
numContainer = SKSpriteNode(imageNamed: "Circle")
numContainer.name = "Circle"
numContainer.size = CGSize(width: 72, height: 72)
numContainer.anchorPoint = CGPointMake(0, 0)
numContainer.position = CGPoint(x: spawnPoint, y: self.size.height)
numContainer.runAction(SKAction.repeatActionForever(action))
numContainer.zPosition = 2
let numberLabel = SKLabelNode(fontNamed: "AvenirNext-Bold")
numberLabel.text = "\(numToTouch)"
numberLabel.name = "Label"
numberLabel.zPosition = -1
numberLabel.position = CGPointMake(CGRectGetMidX(numContainer.centerRect) + 36, CGRectGetMidY(numContainer.centerRect) + 36)
numberLabel.horizontalAlignmentMode = .Center
numberLabel.verticalAlignmentMode = .Center
numberLabel.fontColor = UIColor.whiteColor()
numberLabel.fontSize = 28
addChild(numContainer)
numContainer.addChild(numberLabel)
numContainerArray.append(numContainer)
numToTouch += 1
}
これは物理ベースですか?また、「私はcaになりたいから」と言うつもりでしたか? – cocojoe
@cocojoeアプリは物理ベースではありません。 –
だから 'spawnNumbers()'があなたのためにアクションを開始します、そして、それが呼び出される唯一の場所はこのアクションブロックにありますか? プレイヤーがスタートボタンを押した後にアクションシーケンスを使用してみませんか? 「自分のFPSを低く抑える」声明に好奇心をそそぐ種類? – cocojoe