1234567891011121314151617181920212223242526272829303132 |
- #include "Follower.h"
- Follower::Follower(Persos_Gest* persosGest, bool allie)
- : IACtrl(persosGest, allie), m_focIDAllie(65535), m_focIDFoe(65535), m_vitesse(0.0f)
- {}
- Follower::~Follower()
- {}
- void Follower::update()
- {
- ///Rafraichit focus
- if ( !m_persosGest->getVivant(m_focIDAllie, m_allie) ) m_focIDAllie = focusProche( m_allie );
- if ( !m_persosGest->getVivant(m_focIDFoe, !m_allie) ) m_focIDFoe = focusProche( !m_allie );
- ///Visee
- m_visee = m_persosGest->getPos( m_focIDFoe, !m_allie ) - m_moi->getPos();
- ///Mouvement
- m_mvt = m_persosGest->getPos( m_focIDAllie, m_allie ) - m_moi->getPos();
- if ( m_mvt.norme() < 274.0 && m_vitesse > 0.0f) m_vitesse -= 0.1f; /// Près de l'allié : stop
- else if ( m_vitesse < 1.0f ) m_vitesse += 0.1f; /// Loin, on le rejoint
- ///Tir
- if ( m_visee.norme() < 380.0 && m_persosGest->getVivant( m_focIDFoe, !m_allie ) ) m_tir[ L_HAND ] = m_tir[ R_HAND ] = true;
- else m_tir[ L_HAND ] = m_tir[ R_HAND ] = false;
- m_mvt.normaliser();
- m_mvt *= m_vitesse;
- }
- ///END FICHIER
|