1
「オーバーライドfunc didMove(表示する:SKView){」内でスプライトを更新しようとしています時間は変わるが、常に一定の時間にとどまる。varを更新するにはどうしたら移動しなかったのか?
var randomTime = 1.9
let spritestater = SKSpriteNode(imageNamed: "spritea1.png")
let sprite1 = SKAction.setTexture(SKTexture(imageNamed:"spritea1.png"))
let sprite2 = SKAction.setTexture(SKTexture(imageNamed: "sprite1b.png"))
override func didMove(to view: SKView) {
spritestater.scale(to: self.frame.size)
spritestater.anchorPoint = CGPoint(x: 1, y: 1)
spritestater.zPosition = 1
spritestater.position = CGPoint(x: self.frame.maxX, y: self.frame.maxY)
addChild(spritestater)
let anamatesprite = SKAction.repeatForever(SKAction.sequence(
[sprite1,
SKAction.wait(forDuration: TimeInterval(randomTime)),
sprite2,
SKAction.wait(forDuration: 0.3),
]))
spritestater.run(anamatesprite)
}
override func update(_ currentTime: TimeInterval) {
randomTime = Double(arc4random_uniform(UInt32(4.5)))
}
@Fariniを変更し、新しい時刻にアクションを実行すること、それはあなたを紹介しますいくつかの編集を使用することができます、randomTimeは定数ではありません。 OPは、クラス宣言(仮定)内で適切にセットアップし、varとletを使用しています。 –