13ラウンドが終了するまで進行するターンベースのゲームを作成しようとしています。しかし、13ラウンド後にしか壊れない無限のwhileループを作成した後は、シーンはロードされませんでした。シーンが表示される前にdidMoveToView
のコードが実行されるのはなぜですか?これを修正する方法はありますか、私はおそらく何か間違っていますか?whileループをdidMoveToViewに追加する
override func didMoveToView(view: SKView) {
/* Setup your scene here */
view.ignoresSiblingOrder = true
roundFirstCard = Card(key: "2c")
var actions = [SKAction]()
let cards = makeDeck()
for c in cards {
let card = Card(key: c)
card.name = card.key
card.position = CGPointMake(500, 400)
addChild(card)
giveCardToCorrectPlayer(cards.indexOf(c)!, c: card)
actions.append(SKAction.runAction(SKAction.moveTo(getTargetLocationForCard(cards.indexOf(c)!), duration: 1.0), onChildWithName: card.name!))
actions.append(SKAction.waitForDuration(0.05))
}
actions.append(SKAction.waitForDuration(1.0))
playerCardSets = [player1Cards, player2Cards, player3Cards, player4Cards]
self.runAction(SKAction.sequence(actions), completion: {self.spreadCards()})
currentPlayer = 1
while true {}
}
あなたはどのようなコードを書かれていますか? – gurmandeep
SKNodeのグループを反復処理してアクションを実行することはできず、その結果をdidMoveToViewに表示することを期待します。この関数が呼び出され、完了したらdidMoveToViewが終了したときにそのままシーンを描画し、その後SKゲームループを開始します。 –
トランジションを行っていて、didMoveToViewがすぐに起動した場合、新しいシーンが唯一のシーンであるかどうかを判断するために古いシーンのdidMoveFromViewを確認する必要があります – Knight0fDragon