[英]SKPhysicsBody's .dynamic Property
我有一個矩形節點(具有矩形物理實體),正在執行重復的SKAction來移動。 我已經讀過,對具有物理物體的對象執行操作會導致問題,因此,如果將節點的物理物體設置為.dynamic = false
,是否可以使用SKAction
進行移動而不引起問題? 是否還有其他考慮因素,例如設置.isAffectedByGravity = false
或.dynamic = false
屬性是否覆蓋所有其他物理屬性?
如果您的Sprite是.dynamic,則所有物理屬性都會對其產生影響。 話雖如此,您仍然可以使用SKActions來移動它。 如果.dynamic = false,則所有物理屬性都將被覆蓋,並且不會對您的Sprite起作用。
如官方文件所述 :
動態屬性控制基於體積的物體是否受到重力,摩擦,與其他對象的碰撞以及直接施加到該對象的力或脈沖的影響
也在這里 :
一個布爾值,指示物理模擬是否移動了物理主體。
默認值為true 。 如果該值是錯誤的,則物理主體將忽略施加到其上的所有力和脈沖。 基於邊緣的實體將忽略此屬性; 它們是自動靜態的。
顯然,如果您准備將SKAction
移至x所涉及的對象(將其推到另一側或同一側)的SKAction
移到x位置,則在速度,方向以及通常由SKAction
施加的附加力+物理世界中存在的物理力。 因此答案是:是的,您可能會引起一些問題。 最好在涉及物理定律的情況下使用applyImpulse或速度或其他方法來控制動態對象。
關於最后一個問題:
是否還有其他考慮因素,例如設置.isAffectedByGravity = false或.dynamic = false屬性是否覆蓋所有其他物理屬性?
我認為說“覆蓋”一詞是錯誤的:在定義affectedByGravity
的重力時,您設置的力會影響身體,同一件事可能與dynamic
有關,而質量,密度,面積,摩擦等其他參數都是屬性(特性)。本身帶來的)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.