2016-12-15 3 views
0

私は2つのSKSpriteNodeを持っています.1つは野球のバット、もう1つはボールです。どちらも物理学のボディを持ち、衝突はうまく機能するか、少なくとも検出されます。私はバットを振るSKActionを持っており、ボールと衝突します。それが起こると、両方が動き始める。私はボールが飛び去り、バットが所定の位置にとどまるようにしたい。どうすればこれを達成できますか?ありがとう!他のスプライトと衝突したときに、physicsBodyのSKSpriteNodeが動かないようにするにはどうすればよいですか?

答えて

2

bat.physicsBody.dynamic = falseを作ってみましょうか、バットのcollisionBitMaskが含まれていないバットがボールと衝突しないように、それを作る(ただし、ボールバットに衝突しておく)、すなわち、ボールのcategoryBitMask

bat.physicsBody?.collisionBitMask &= ~ballCategory // bat does not collide with ball 
あなたが行う必要があるでしょう

バットがボールに当たったときにバットを止めたい場合(例えば、2人の接触を設定したり、接触したり、バットのアクションを取り除いたり、バットの速度を0に設定するなど)

0

OK、明らかに非常に簡単です - SKPhysicsBodyにpinnedというプロパティがあり、これをtrueに設定するだけでした。

ドキュメントの状態: A Boolean value that indicates whether the physics body’s node is pinned to its parent node. The default value is false. If true, the node’s position is fixed relative to its parent. The node’s position cannot be changed by actions or physics forces. The node can freely rotate around its position in response to collisions or other forces. If the parent node has a physics body, the two physics bodies are treated as if they are connected with a pin joint.

+0

だから、バットは、一端で開催され、振られていますようにすなわちrealisticly動いていますか? –

+0

はい、唯一のことは、デフォルトで中心点に固定されていることです。したがって、アンカーポイントと物理学のボディのフレームを調整する必要があります。 – almas

関連する問題