void CBirdCommander::update(float delta) { CCommander::update(delta); CGameObject* pOwner = dynamic_cast<CGameObject*>(getOwner()); switch (pOwner->getCurrentState()) { case CBird::ST_IDLE: { m_fDelayTime += delta; if(m_fDelayTime >= random(5, 15)) { m_fDelayTime = 0; Value command(CBird::CMD_MOVE); m_pOwner->actionCommand(command); } }break; default: break; } }