void OperateLayer::onTouchesMoved(const vector<Touch*>& touches, Event *unused_event) { Size winSize = Director::getInstance()->getWinSize(); std::vector<Touch*>::const_iterator touchIter = touches.begin(); Touch *pTouch = (Touch*)(*touchIter); Point start = pTouch->getStartLocation(); if(start.x > winSize.width / 2) { return; } Point dest = pTouch->getLocation(); float distance = start.getDistance(dest); Point direction = (dest - start).normalize(); this->updateJoystick(direction, distance); m_pHero->walk(direction, distance); }