2016-07-15 17 views
1

私は周りを移動するために繰り返しSKActionを実行している四角形のノード(四角形の物理ボディを持つ)があります。私は物理機関のオブジェクトでアクションを実行すると問題が発生する可能性があるので、.dynamic = falseに設定されたノードの物理ボディを持っている場合は、問題を起こさずにSKActionで移動できますか? .isAffectedByGravity = falseを設定するなどの他の考慮事項がありますか、または.dynamic = falseプロパティは他のすべての物理プロパティをオーバーライドしますか?SKPhysicsBodyの.dynamicプロパティ

答えて

1

official documentsにより説明したように:

体積ベース体を使用すると、直接オブジェクトに適用重力、摩擦、他の物体との衝突、および力または インパルスによって 影響を受けるかどうかを動的プロパティコントロールはまたhere

Aブールヴァル物理シミュレーションが物理シミュレーションによって 移動されたかどうかを示すue。

デフォルト値はです。です。値がfalseの場合、フィジックスボディはそれに適用されたすべての力とインパルスを無視します。エッジベースのボディではこのプロパティは無視されます。自動的に静的です。

あなたは、反対側または同じ側で彼をプッシュする衝動に関与するオブジェクトにxを移動するようにSKActionを準備すると、あなたは速度、方向および一般的に望ましくない結果をもたらすでしょう。 SKActionによって加えられた追加の力+物理界に存在する物理的な力によって引き起こされる挙動。だから答えは:はい、あなたはいくつかの問題を引き起こす可能性があります。物理法則を含む文脈で動的オブジェクトを制御するには、​​またはvelocityまたは他の方法を使用する方が良いです。あなたの最後の質問について

は偽= .isAffectedByGravityを設定したりする。dynamic = falseのプロパティのオーバーライドその他のすべての物理的特性を行う等が他の考慮事項はありますか?

私は用語「オーバーライド」と言うのは間違いだと思う:あなたは affectedByGravityを定義するときには、物理​​的な身体に影響を与える力を設定し、同じことを約dynamic質量、密度、面積、摩擦のような他のパラメータしばらくすることができ..特性である(それ自体でもたらされる特性)

1

Spriteが.dynamicの場合、すべての物理プロパティがそれに影響します。これが言われても、SKActionsを使用して移動することはできます。 .dynamic = falseの場合、すべての物理プロパティはオーバーライドされ、Spriteには作用しません。