スプライトキットで、物体同士が衝突した場合の処理については、
physicsBodyで処理をしますが、例えば、スーパーマリオでプレイヤーがコインに当たった場合にスムーズに処理できるような処理のやり方をご教示いただきたいです
例えば、以下のようにプレイヤーがコインに触れる時の処理をコーデイングすると(Coin をあらかじめcategoryBitMaskに設定した場合)、確かに衝突した場合にコインが消える処理を実装できるのですが、コインに触れた時に一瞬、プレイヤーがバウンドしてしまい、スーパーマリオのようにスムーズにコインが消えません。原因はコインにphysicsBodyを設定しているのが原因かと思うのですが、どのようにしたらバウンドせずにできるのかがわかりません。ちなみに、physicsBodyのプロパテイのrestingや、friction,restitutionをいじっても、うまくいかずに困っています。どうか分かる方教えていただけないでしょうか?
func didBeginContact(contact:SKPhysicsContact){
if contact.bodyA.categoryBitMask == Coin || contact.bodyB.categoryBitMask == Coin{
if contact.bodyA.categoryBitMask == Coin{
contact.bodyA.node?.removeFromParent()
}
if contact.bodyB.categoryBitMask == Coin{
contact.bodyB.node?.removeFromParent()
}
}
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/31 15:26