所以我現在用的是didBeginContact方法使用下面的代碼塊來檢測子彈的物理機構和在我的場景中其他物體之間的碰撞:爲什麼只有一些節點從Sprite Kit的父級中被移除?
-(void)didBeginContact:(SKPhysicsContact *)contact
{
uint32_t collision = (contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask);
if (collision == (WWPhysicsCategoryOther | WWPhysicsCategoryBullet)) {
[_bullet removeFromParent]
}
}
當一顆子彈是在屏幕上,子彈已移除。但是,像很多射擊遊戲一樣,玩家可以重複發射子彈。我發現當屏幕上有多個子彈時,並不是所有的子彈在聯繫後都會被移除。我怎樣才能確保每一顆子彈在碰撞後立即被移除?
建議你確定哪些接觸體(A或B)是子彈,然後從它的父對應的節點。例如,[contact.bodyA.node removeFromParent]; – 0x141E
_bullet似乎是僅指向單個節點的指針。您需要找到與聯繫人委託本身中的物理體對應的節點。這裏是如何:http://stackoverflow.com/a/20604762/2043580 – ZeMoon
謝謝兩個答覆。很有幫助! – wtivie05