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

entite_arme.cpp

Aller à la documentation de ce fichier.
00001 00002 // Shoot(r) 00009 00010 #include "entite_arme.h" 00011 #include "ctrl_entite.h" 00012 #include "type_arme.h" 00013 #include "fx_explosion.h" 00014 00015 CEntiteArme::CEntiteArme () 00016 { 00017 m_uiPoint = 0; 00018 m_iBouclier = 1; 00019 } 00020 00021 CEntiteArme::~CEntiteArme () 00022 { 00023 // Si l'arme est dans l'écran de jeu alors on créé un effet d'explosion 00024 if (EstDansEcran (GetPosition (), m_pTypeArme->GetTaille ())) 00025 CExplosion::Create (0, 8, GetPosition (), 32, 0.5f, CCouleur (1.0f, 0.5f, 0.2f)); 00026 00027 // Si l'entité est lié à un effet de fumee, on indique que l'effet doit être supprimer 00028 if (m_pFumee) 00029 m_pFumee->Supprimer (); 00030 } 00031 00032 // Création d'une instance d'entité arme 00033 CEntiteArme* CEntiteArme::Create (const CTypeArme* pTypeArme, CEntite* pProprietaire, const CVecteur & Ancrage) 00034 { 00035 // Demande au gestionnaire d'entités de créer une instance d'arme puis on récupère une pointeur sur elle 00036 CEntiteArme *pEntite = CEntityManager::Instance ()->CreateArme (); 00037 if (pEntite == 0) 00038 return 0; 00039 00040 pEntite->m_EntiteType = pProprietaire->GetType (); 00041 pEntite->m_pProprietaire = pProprietaire; 00042 pEntite->m_pTypeArme = pTypeArme; 00043 pEntite->m_PositionI = pEntite->m_PositionF = pProprietaire->GetPosition () + Ancrage; 00044 float fPrecision = pTypeArme->GetVitesse () (gtl::Y) * pTypeArme->GetPrecision (); 00045 float fRand = RandFloat (-fPrecision, fPrecision); 00046 CVecteur VecteurTemp = CVecteur ( 00047 RandFloat (pTypeArme->GetVitesse () (gtl::X) * 0.9f, pTypeArme->GetVitesse () (gtl::X) * 1.1f), 00048 RandFloat (pTypeArme->GetVitesse () (gtl::Y) * 0.9f, pTypeArme->GetVitesse () (gtl::Y) * 1.1f)); 00049 CVecteur Vitesse = VecteurTemp + CVecteur (fRand, fabs (1-fRand)); 00050 pEntite->m_VitesseI = pEntite->m_VitesseF = Vitesse; 00051 pEntite->m_Acceleration = pTypeArme->GetAcceleration (); 00052 // Effectue la liaison de l'entité à un effet de fumée si l'arme est parametré pour en avoir une 00053 if (pTypeArme->GetFumee ()) 00054 pEntite->m_pFumee = CFumee::Create (pEntite, pTypeArme->GetTaille (), 0, Vitesse (gtl::Y) * 0.25f, 0.5f, pTypeArme->GetCouleur ()); 00055 else 00056 pEntite->m_pFumee = 0; 00057 00058 return pEntite; 00059 } 00060 00061 int CEntiteArme::GetDommage () const 00062 { 00063 return m_pTypeArme->GetDommage (); 00064 } 00065 00066 float CEntiteArme::GetTaille () const 00067 { 00068 return m_pTypeArme->GetTaille (); 00069 } 00070 00071 CTexture* CEntiteArme::GetTexture () const 00072 { 00073 return m_pTypeArme->GetTexture (); 00074 } 00075 00076 00077 00078

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