一般的な精神病のために、Appleはupdate()
コールをSKScene
に入れましたが、更新の呼び出しをSKSpriteNode
に置いていたのを忘れていました。SKSpriteの場合、実際にはcustomActionはUpdate呼び出しですか?
は今、限りすべての私達のテストはちょうどスプライトの「のCustomAction」を使用してSpriteKitベースで、
を決定することができるよう場面でupdate
で何かを実行するのとまったく同じのようです。
func teste() {
let a = SKAction.customAction(withDuration: 5.0) { [weak self] node, elapsedTime in
print("Honest to goodness, this is the run loop. I think.")
print("\(self?.k) \(elapsedTime)")
self?.k += 1
}
run(a)
}
私はドキュメントを無駄にしてしまった。
本当に "customAction"が実際にすべてのフレームを実行するのは本当ですか?それは効果的かつ安全にUpdateコールですか?
(例:多分、彼らは「すべての1 /第60回」か何か、それを実行し、それは本当にシーンと同じ実行ループ上で動作していないという恐ろしい偶然の一致があるかもしれません。)
あるいは、どうやら以来それは本当にBox2Dです。誰かがBox2D環境からこのことを明らかにすることができますか?問題の
解像度:騎士に
おかげで、我々は今、「更新呼び出しとして」のCustomActionを使用して、更新呼び出しのようにほとんど同じであることを知っている:それは中に起こりますsecond実行ループのフェーズ。更新フェーズの直後です。
{更新フェーズで実際に実行したい場合は、SpriteKitの通常の回避策を使用する必要があります。ゲームオブジェクトで独自の更新関数を呼び出すだけです。 。}
を参照してください更新サイクルの実行フェーズ
に起こります。 – Knight0fDragon
"更新サイクルのアクションフェーズ中にカスタムアクションが呼び出される"優れた点 – Fattie
( "スプライトは更新メソッドを必要としない"あなたのコメントは信じられないほど古いBeanです:) Unity言語では、すべてのゲームオブジェクトの "Update"コールがスクリプティングコンセプト全体の主な理由です!*タンク、弾丸、マリオなどをプログラムするには、Updateコールを書きます。 ){是非、アップルはあなたのために何かを時間をかけて実行する、彼らの面白い、そして素晴らしい "アクション"コンセプトを持っています。もちろん、シーンと同様に、実行ループにアクセスする必要があります。} – Fattie