Code: Select all
void C_BaseZombie::Update(ICameraSceneNode* pCamera, u32 uElapsedTime)
{
if(pNode)
{
vPosition = pNode->getPosition();
vector3df vec = vPosition;
if(vec.getDistanceFrom(pCamera->getPosition()) < 4)
nCurrentState = following;
if(vec.getDistanceFrom(pCamera->getPosition()) < 1)
nCurrentState = attacking;
else
nCurrentState = idle;
fDistanceFromPlayer = vec.getDistanceFrom(pCamera->getPosition());
}
int nOldState = nCurrentState;
if(nOldState != nCurrentState)
ProcessState(nCurrentState, pCamera, uElapsedTime);
}
void C_BaseZombie::ProcessState(int eCurrentState, ICameraSceneNode* pCamera, u32 uElapsedTime)
{
switch(eCurrentState)
{
case following:
{
vector3df vec = pCamera->getPosition() - vPosition;
f32 fDistance = uElapsedTime * fMov_speed;
vec = vec.normalize() * fDistance;
pNode->setPosition(pNode->getPosition() + vec);
//play walking animation
//play walking sound
}
case idle:
{
//play idle animation
//play idle sound
}
case attacking:
{
//play attacking animation
//play attacking sound
//damage the player
}
}
}
Code: Select all
if(vec.getDistanceFrom(pCamera->getPosition()) < 1)
i wanna know why my zombie isnt moving
Any help would be appreciated.
