私はスピリット3でスピリットキットを使用しています。私の質問は、1つのノード(私はそれを惑星と呼ぶ)に弾を撃った後です。私は銃弾だけが場面から消えて、私のノード(惑星)がまだ走り続けていて、そのノード(惑星)がメインプレイヤーと衝突すると両方とも消える(ここで問題はない)。私の問題は弾丸がノードそれらの両方私はちょうどBullet.removefromParentを(書いてどのようにこれまでの衝突機能で消える)、ここでは私のコードは、(私は弾丸と衝突した後、私の惑星を維持し、私の弾丸がシーンから削除したい)である:SpritKit swift 3物理的なボディの衝突と1つのノードのみを削除
func CollitionPlannetWithBullet(_ Bullet : SKSpriteNode, Planet : SKSpriteNode){
Bullet.removeFromParent()
}
、これはありますコードが連絡先機能を開始しましたn個の惑星と弾丸のために:
if ((firstBody.categoryBitMask == physicsCatagory.Planet) &&
(secondBody.categoryBitMask == physicsCatagory.Bullet)) ||
((firstBody.categoryBitMask == physicsCatagory.Bullet) &&
(secondBody.categoryBitMask == physicsCatagory.Planet)) {
CollitionPlannetWithBullet(firstBody.node as! SKSpriteNode, Planet: secondBody.node as! SKSpriteNode)
}
、あなたのif文では、自分自身が混乱している、あなたはbody1またはbody2は弾丸可能と言うが、あなたの 'CollitionPlannetWithBullet'中(スペルエラー?)あなただけbody1があると言っています弾丸。試して一貫性を維持する – Knight0fDragon