Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }