私は周りを移動するために繰り返しSKActionを実行している四角形のノード(四角形の物理ボディを持つ)があります。私は物理機関のオブジェクトでアクションを実行すると問題が発生する可能性があるので、.dynamic = false
に設定されたノードの物理ボディを持っている場合は、問題を起こさずにSKAction
で移動できますか? .isAffectedByGravity = false
を設定するなどの他の考慮事項がありますか、または.dynamic = false
プロパティは他のすべての物理プロパティをオーバーライドしますか?SKPhysicsBodyの.dynamicプロパティ
答えて
official documentsにより説明したように:
体積ベース体を使用すると、直接オブジェクトに適用重力、摩擦、他の物体との衝突、および力または インパルスによって 影響を受けるかどうかを動的プロパティコントロールはまたhere
:
Aブールヴァル物理シミュレーションが物理シミュレーションによって 移動されたかどうかを示すue。
デフォルト値はです。です。値がfalseの場合、フィジックスボディはそれに適用されたすべての力とインパルスを無視します。エッジベースのボディではこのプロパティは無視されます。自動的に静的です。
あなたは、反対側または同じ側で彼をプッシュする衝動に関与するオブジェクトにxを移動するようにSKAction
を準備すると、あなたは速度、方向および一般的に望ましくない結果をもたらすでしょう。 SKAction
によって加えられた追加の力+物理界に存在する物理的な力によって引き起こされる挙動。だから答えは:はい、あなたはいくつかの問題を引き起こす可能性があります。物理法則を含む文脈で動的オブジェクトを制御するには、またはvelocityまたは他の方法を使用する方が良いです。あなたの最後の質問について
:
は偽= .isAffectedByGravityを設定したりする。dynamic = falseのプロパティのオーバーライドその他のすべての物理的特性を行う等が他の考慮事項はありますか?
私は用語「オーバーライド」と言うのは間違いだと思う:あなたは affectedByGravity
を定義するときには、物理的な身体に影響を与える力を設定し、同じことを約dynamic
質量、密度、面積、摩擦のような他のパラメータしばらくすることができ..特性である(それ自体でもたらされる特性)
Spriteが.dynamicの場合、すべての物理プロパティがそれに影響します。これが言われても、SKActionsを使用して移動することはできます。 .dynamic = falseの場合、すべての物理プロパティはオーバーライドされ、Spriteには作用しません。