コード例 #1
0
 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;
         }
     }
 }