static public void Collide(GameObject pSafeTreeA, GameObject pSafeTreeB) { // A vs B GameObject pNodeA = pSafeTreeA; GameObject pNodeB = pSafeTreeB; while (pNodeA != null) { pNodeB = pSafeTreeB; while (pNodeB != null) { // Get rectangles CollisionRect rectA = pNodeA.GetCollisionObject().GetCollisionRect(); CollisionRect rectB = pNodeB.GetCollisionObject().GetCollisionRect(); if (CollisionRect.Intersect(rectA, rectB)) { pNodeA.Accept(pNodeB); //break; } pNodeB = Iterator.GetSiblingGameObject(pNodeB); } pNodeA = Iterator.GetSiblingGameObject(pNodeA); } }
static public void Collide(GameObject pTreeA, GameObject pTreeB) { GameObject pNodeA = pTreeA; GameObject pNodeB = pTreeB; while (pNodeA != null) { pNodeB = pTreeB; while (pNodeB != null) { CollisionRect rectA = pNodeA.pColObject.pColRect; CollisionRect rectB = pNodeB.pColObject.pColRect; //Debug.WriteLine("Collision Pair : {0} <----------> {1}", pNodeA.name, pNodeB.name); if (CollisionRect.Intersect(rectA, rectB)) { pNodeA.Accept(pNodeB); break; } pNodeB = Iterator.GetSiblingGameObject(pNodeB); } pNodeA = Iterator.GetSiblingGameObject(pNodeA); } }