Follower.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. #include "Follower.h"
  2. Follower::Follower(Persos_Gest* persosGest, bool allie)
  3. : IACtrl(persosGest, allie), m_focIDAllie(65535), m_focIDFoe(65535), m_vitesse(0.0f)
  4. {}
  5. Follower::~Follower()
  6. {}
  7. void Follower::update()
  8. {
  9. ///Rafraichit focus
  10. if ( !m_persosGest->getVivant(m_focIDAllie, m_allie) ) m_focIDAllie = focusProche( m_allie );
  11. if ( !m_persosGest->getVivant(m_focIDFoe, !m_allie) ) m_focIDFoe = focusProche( !m_allie );
  12. ///Visee
  13. m_visee = m_persosGest->getPos( m_focIDFoe, !m_allie ) - m_moi->getPos();
  14. ///Mouvement
  15. m_mvt = m_persosGest->getPos( m_focIDAllie, m_allie ) - m_moi->getPos();
  16. if ( m_mvt.norme() < 274.0 && m_vitesse > 0.0f) m_vitesse -= 0.1f; /// Près de l'allié : stop
  17. else if ( m_vitesse < 1.0f ) m_vitesse += 0.1f; /// Loin, on le rejoint
  18. ///Tir
  19. if ( m_visee.norme() < 380.0 && m_persosGest->getVivant( m_focIDFoe, !m_allie ) ) m_tir[ L_HAND ] = m_tir[ R_HAND ] = true;
  20. else m_tir[ L_HAND ] = m_tir[ R_HAND ] = false;
  21. m_mvt.normaliser();
  22. m_mvt *= m_vitesse;
  23. }
  24. ///END FICHIER