void CATouchController::passingTouchesViews(float dt) { CAView* view = dynamic_cast<CAView*>(CAApplication::getApplication()->getTouchDispatcher()->getFirstResponder()); bool isContainsFirstPoint = view && view->convertRectToWorldSpace(view->getBounds()).containsPoint(m_tFirstPoint); if (!isContainsFirstPoint && view) { view->ccTouchBegan(m_pTouch, m_pEvent); } CC_RETURN_IF(m_vTouchesViews.empty()); CAResponder* responder = m_vTouchesViews.front(); while (responder->nextResponder()) { m_vTouchesViews.pushBack(responder->nextResponder()); responder = responder->nextResponder(); } for (int i=0; i<m_vTouchesViews.size();) { if (!m_vTouchesViews.at(i)->ccTouchBegan(m_pTouch, m_pEvent)) { m_vTouchesViews.erase(i); } else { i++; } } }