void ControllerSimpleMove::moveOneStep() { Sprite* sprite = m_entity->getSprite();//初始化时,将调用simplemove的entity传入,m_entity=entity if(sprite != NULL) { Point entityPos = m_entity->getPosition(); Point curDestPos = m_curDestPos->getPos();//这里为什么用getpos,都没有定义? /* 取得下一个移动坐标点 */ entityPos = getNextPos(entityPos, curDestPos); /* 移动实体 */ m_entity->setPosition(entityPos); /* 到达当前目的地,开始下一个目的地 */ if(entityPos.x == curDestPos.x && entityPos.y == curDestPos.y) { if(m_movePosList.size() > 0) { nextMovePos(); } else { /* 移动结束 */ if (m_moveEndFunc) { m_moveEndFunc(); m_moveEndFunc = nullptr; } } } } }
void ControllerSimpleMove::moveOneStep() { CCSprite* sprite = m_entity->getSprite(); if(sprite != NULL) { CCPoint entityPos = m_entity->getPosition(); CCPoint curDestPos = m_curDestPos->getPos(); /* 取得下一个移动坐标点 */ entityPos = getNextPos(entityPos, curDestPos); /* 移动实体 */ m_entity->setPosition(entityPos); /* 到达当前目的地,开始下一个目的地 */ if(entityPos.x == curDestPos.x && entityPos.y == curDestPos.y) { if(m_movePosList->count() > 0) { nextMovePos(); } else { /* 移动结束 */ m_isMoving = false; if(m_moveEnd != NULL) { m_moveEnd->moveEnd(); } } } } }
//首先传入这个函数,置m_ismoving为true,才能开始schedule。 //取speed的值,span的值,以及调用nextmovepos获得下一步移动坐标的值 void ControllerSimpleMove::moveByPosList(Vector<PosBase*> posList) { if(posList.size() < 1) { return; } this->m_movePosList.clear(); this->m_movePosList.pushBack(posList); nextMovePos(); this->m_isMoving = true; }
void ControllerSimpleMove::moveByPosList( CCArray* posList ) { if(posList == NULL || posList->count() < 1) { return; } this->m_movePosList->removeAllObjects(); this->m_movePosList->addObjectsFromArray(posList); nextMovePos(); this->m_isMoving = true; }