void EntityManager::Update() { int speed=5; vector3df pPos = player->pCam->getAbsolutePosition(); vector3df aiPos = aient->node->getAbsolutePosition(); if(pPos.getDistanceFrom(aiPos) < 500) { if(walking == false && setWalkingLoop == true){setWalkingLoop=false;} walking = true; vector3df f = (pPos-aiPos).normalize()*speed; aient->node->setPosition(vector3df(aiPos.X+=f.X, aiPos.Y, aiPos.Z+f.Z)); vector3df direction = (pPos - aiPos).getHorizontalAngle(); aient->node->setRotation(vector3df(0,direction.Y+180,direction.Z)); } else { if(walking == true && setIdleLoop == true){setIdleLoop=false;} walking = false; if(setIdleLoop != true) { aient->node->setFrameLoop(290*100,330*100); setIdleLoop = true; } } if(walking == true && setWalkingLoop == false) { aient->node->setFrameLoop(1,25*100); setWalkingLoop = true; } }