public void SearchNode(Bullet bullet) { if (ObjList.Count() != 0 && CheckPointInside(bullet.Bound, QTNodeType.Root)) { // 检查每次递归遇到的节点内的物体(非叶子节点内为交叉物体,叶子节点内为非交叉物体) // 在这里检查碰撞 for (int i = 0; i < ObjList.Count; i++) { ObjList[i].HighLightObs = true; if (Bound.CheckCollision(bullet.Bound, ObjList[i].Bound)) { ObjList[i].DestroySelf(); bullet.DestroySelf(); return; } } } // 找不到就从最可能的子节点入手继续递归的找 foreach (QNode qNode in ChildList) { if (CheckPointInside(bullet.Bound, qNode.Type)) { qNode.SearchNode(bullet); return; } } }