2016-05-29 5 views
2

The .removeFromParent()メソッドはスプライトを削除しません。どうしましたか?SKAction.removeFromParent SKAction.repeatActionForeverを使用してスプライトを削除しない

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    guard touches.first != nil else { 
     return 
    } 

    let myShot = SKSpriteNode() 
    let myShotAnimation = SKAction.repeatActionForever(SKAction.animateWithTextures(myShotTexture, timePerFrame: 0.01)) 
    myShot.size = CGSizeMake(200, 200) 
    myShot.anchorPoint = CGPoint(x: 0.5, y: 0.5) 
    myShot.zPosition = 0 
    sprite!.addChild(myShot) 
    let myShotAction = SKAction.group([SKAction.scaleBy(0.1, duration: 0.5), myShotAnimation]) 
    let actionRemove = SKAction.removeFromParent() 
    myShot.runAction (SKAction.sequence([myShotAction, actionRemove])) 

} 

答えて

0

マッドハウスが消えないアニメーションとスプライト "myShot"。私はアクション

SKAction.repeatActionForever 
アクションあたり

SKAction.repeatAction 

を交換し、すべてが働きました。

+1

あなたが 'SKAction.repeatAction'で働いていると言うと、私は' SKAction.repeatAction:count'が一定の期間を持っていることを意味していると思います。何らかの点で終了することを意味します。そのため、 'actionRemove'が呼び出されます。 @ AlessandroOrnanoの答えを見てください。彼は問題を正しく説明しました。 – Whirlwind

+0

ありがとうございます。彼は5時間を推測した。 – SashDing

+2

答えにあなたの質問を拡大しないでください。あなたが答えを見つけたら、それを投稿し、それを受け入れられた答えとしてマークすることができます。 – CloakedEddy

3

単にactionRemoveが呼び出されないためです。

あなたが起動します。それは終わっていますmyShotAction SKActionと、actionRemoveを実行している

myShot.runAction (SKAction.sequence([myShotAction, actionRemove])) 

順次。しかし、最初のSKActionが終了しないアクション(SKAction.repeatActionForever)の場合、actionRemoveは決して呼び出されません。

+0

こんにちはアレッサンドロ、同じ問題を抱えていますが、私はrepeatactionforeverを元に戻し、その代わりに繰り返し(アクション、カウント)する必要があると思いますか? – Marin

+0

考え方の代わりに、2回の実行を試みることができます.1回目はrepeatActionForEver、2回目は待ち時間のあるシーケンス、アクションです。 –

関連する問題