私はスイフトを背中の手術から解剖している間に勉強してきました。キー変更によるSKActionスプライトの振る舞い
問題の説明: 私はヒット時にスプライトを後方に押す機能があります。私が使用するとき
self.runAction(jumpBackSequence)
私は望ましい動作を得る。 (スプライトが良い距離を押し戻される。)
今、私は次の連絡先に再び前進をforwardアクションを停止できるようにする必要があるので、私は「withKeyを」(使用するためにこれを更新するとき大幅dimishedさ
self.runAction(jumpBackSequence, withKey: "moveStraightLine")
このアクションを作成My機能は以下の通りです:。
func pushBack(){
self.removeActionForKey("moveStraightLine")
let height:CGFloat = 5
let jumpDistanceA:CGFloat = 20
let jumpDistanceB:CGFloat = 20
let duration:NSTimeInterval = 0.15
let jumpUp = SKAction.moveByX(0, y:height, duration:duration)
let moveBack = SKAction.moveByX(jumpDistanceA, y: 0, duration: duration)
let jStep1 = SKAction.group([jumpUp, moveBack])
let jumpDown = SKAction.moveByX(0, y:(height * -1), duration:duration)
let moveBack2 = SKAction.moveByX(jumpDistanceB, y: 0, duration: duration)
let jStep2 = SKAction.group([jumpDown, moveBack2])
let moveZombie1 = SKAction.moveToX(0, duration: spawnSpeed1() )
let removeZombie1 = SKAction.removeFromParent()
let moveAndRemoveZombie1 = SKAction.sequence([moveZombie1, removeZombie1])
let jumpBackSequence = SKAction.sequence([jStep1, jStep2, moveAndRemoveZombie1])
self.runAction(jumpBackSequence)
// self.runAction(jumpBackSequence, withKey: "moveStraightLine")
}
時間の前にアクションを削除していると思います。キーを置いて、上の行self.removeActionForKey( "moveStraightLine")を削除すると、どのような振る舞いですか? –
多くのありがとう、そのキーは、元の動きを停止します。私がスプライトを作成するとき、私はそれを同じキーでアクションを介して移動するように設定しました。ジャンプを元に戻すには、まずそれを削除する必要があります。奇妙なことに、画面幅の一部を使用するようにコードを更新すると、それが修正されました。私がバグやもっと深い素早い謎を見つけたのかどうかはわかりません。見て回答していただきありがとうございます。私は既にスタックオーバーフロー時に投稿する時間を取った皆さんから多くを学んでいます。 –
異なるアクションで同じ名前を使用しているのはなぜですか?別の名前に変更してみてください –