bool TouchControllerEvent::sendTouchMessage(Touch* ccTouch, int type) { // 编写判断,集合中的哪个元素级别高,就触发哪一个 TouchController* touchController = NULL; // 获得点击的点 CCObject* pObj = NULL; TouchController* lt = NULL; CCARRAY_FOREACH(m_pTouchControlleres, pObj) { lt = dynamic_cast<TouchController*>(pObj); if (lt) { if (lt->selfCheck(ccTouch, this)) { if (touchController == NULL) touchController = lt; else // 如果已存在符合条件元素,比较优先级 touchController = getPriorityTouch(touchController, lt); } } }
bool LsTouchEvent::sendTouchMessage(CCTouch* ccTouch, int type) { LsTouch* lsTouch = NULL; CCObject* pObj = NULL; LsTouch* lt = NULL; CCARRAY_FOREACH(m_pLsTouches, pObj) { lt = dynamic_cast<LsTouch*>(pObj); if (lt) { if (lt->selfCheck(ccTouch, this)) { if (lsTouch == NULL) { lsTouch = lt; } else { lsTouch = getPriorityTouch(lsTouch, lt); } } } }