Page principale | Hiérarchie des classes | Liste des classes | Liste des fichiers | Membres de classe | Membres de fichier

entite_ennemi.cpp

Aller à la documentation de ce fichier.
00001 00002 // Shoot(r) 00009 00010 #include "entite_ennemi.h" 00011 #include "entite_arme.h" 00012 #include "ctrl_fenetre.h" 00013 #include "ctrl_son.h" 00014 #include "ctrl_jeu.h" 00015 #include "entite_ennemi.h" 00016 #include "fx_explosion.h" 00017 00018 CEntiteEnnemi::CEntiteEnnemi () 00019 { 00020 m_uiPoint = 10; 00021 m_iBouclier = 1; 00022 m_TireTimer.Init (); 00023 } 00024 00025 CEntiteEnnemi::~CEntiteEnnemi () 00026 { 00027 // Si l'ennemi est dans l'écran de jeu alors on emet un son d'explosion et on créé un effet d'explosion 00028 if (EstDansEcran (GetPosition (), m_pTypeEnnemi->GetTaille ())) 00029 { 00030 // Emet le son de l'explosion de l'entité 00031 CSoundManager::Instance ()->Jouer (m_pTypeEnnemi->GetSon (), CANAL_ENNEMI); 00032 // Créé une explosion 00033 CExplosion::Create (0, 32, GetPosition (), 96, 1.0f, CCouleur (1.0f, 0.5f, 0.2f)); 00034 } 00035 } 00036 00037 // Création d'une instance d'entité ennemi 00038 CEntiteEnnemi* CEntiteEnnemi::Create (const CTypeEnnemi* pTypeEnnemi, const CVecteur & Position) 00039 { 00040 // Demande au gestionnaire d'entités de créer une instance d'ennemi puis on récupère une pointeur sur elle 00041 CEntiteEnnemi *pEntite = CEntityManager::Instance ()->CreateEnnemi (); 00042 if (pEntite == 0) 00043 return 0; 00044 00045 CVecteur Vecteur = CVecteur ( 00046 RandFloat (pTypeEnnemi->GetVitesse () (gtl::X) * 0.75f, pTypeEnnemi->GetVitesse () (gtl::X) * 1.25f), 00047 RandFloat (pTypeEnnemi->GetVitesse () (gtl::Y) * 0.75f, pTypeEnnemi->GetVitesse () (gtl::Y) * 1.25f)); 00048 pEntite->m_pTypeEnnemi = pTypeEnnemi; 00049 pEntite->m_iBouclier = pTypeEnnemi->GetBouclier (); 00050 pEntite->m_PositionI = pEntite->m_PositionF = Position; 00051 pEntite->m_VitesseI = pEntite->m_VitesseF = Vecteur; 00052 pEntite->m_Acceleration = pTypeEnnemi->GetAcceleration (); 00053 00054 return pEntite; 00055 } 00056 00057 unsigned int CEntiteEnnemi::GetPoint () const 00058 { 00059 return m_pTypeEnnemi->GetPoint (); 00060 } 00061 00062 int CEntiteEnnemi::GetDommage () const 00063 { 00064 return m_pTypeEnnemi->GetDommage (); 00065 } 00066 00067 CTexture* CEntiteEnnemi::GetTexture () const 00068 { 00069 return m_pTypeEnnemi->GetTexture (); 00070 } 00071 00072 float CEntiteEnnemi::GetTaille () const 00073 { 00074 return m_pTypeEnnemi->GetTaille (); 00075 } 00076 00077 void CEntiteEnnemi::Action () 00078 { 00079 // 01/05/2004 - Si l'ennemi n'a pas d'armes, il ne tire pas. 00080 if (!m_pTypeEnnemi->GetTypeArme ()) 00081 return; 00082 00083 if (!EstDansEcran (m_PositionF, 0)) 00084 return; 00085 00086 if (m_TireTimer.GetTime () > m_pTypeEnnemi->GetTypeArme ()->GetCadence ()) 00087 { 00088 m_TireTimer.Init (); 00089 for (unsigned int i = 0; i < m_pTypeEnnemi->GetTypeArme ()->GetAncrageNombre (); i++) 00090 CEntiteArme::Create (m_pTypeEnnemi->GetTypeArme (), this, m_pTypeEnnemi->GetTypeArme ()->GetAncrageParIndex (i)); 00091 } 00092 } 00093

Généré le Sun Sep 26 11:36:46 2004 pour Shoot(r) par doxygen 1.3.8