0
アクションのスピード値をアンラップして10タップごとに増加させようとしていますが、 '?'を使用すると変化しません。 "スピード"の前に。私が '!'それは「オプションの値をアンラップ」エラー」がスローされます。私はこの問題を解決することができますか? ここに私のコードですSpriteKit Unwrap
スウィフトは、ランタイムエラーをスローし、オプションの値をアンラップするときはnilを見つけることについて不平を言うfor child in self.children as! [SKSpriteNode] {
if let block: SKSpriteNode = child as? SKSpriteNode {
if (tapCount == 10) {
block.action(forKey: "seq")?.speed += 0.5
block.action(forKey: "seq2")?.speed += 0.5
print(block.action(forKey: "seq2")?.speed)
tapCount = 0
print("YES")
}
}
}
あなたの子供は既にSKSpriteNode(あなたは警告が必要です)ので、最初の 'if'は不要です。しかし、SKSpriteNodeが子供に配置されると、あなたのように!キャストは失敗します – Knight0fDragon
これらは常にSKSpriteNodeになりますので、使用してください。最初のifは不必要だと私は同意する。もともとSKSpriteNodeのサブクラスにキャストするために使用されていましたが、今は役に立たないです。ありがとう! – Nas5296
ちょうどそれが良い練習ではないと言って、道路を6ヶ月、あなたの心を変え、SKLabelNodeとbamを追加するかもしれません。あなたはなぜそれが壊れているのか理解できず、見た目が簡単すぎるので、あなたは戻っています。また、 !問題ではない、SKSpriteNodeへのキャストが問題です。私は残して言う、キャストを削除する – Knight0fDragon