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

fx_fumee.cpp

Aller à la documentation de ce fichier.
00001 00002 // Shoot(r) 00009 00010 #include "ctrl_particule.h" 00011 #include "fx_fumee.h" 00012 00013 CFumee::CFumee (CTexture *pTexture) 00014 { 00015 m_pTexture = pTexture; 00016 } 00017 00018 CFumee::~CFumee () 00019 { 00020 00021 } 00022 00023 CFumee* CFumee::Create (CEntite *pProprietaire, float fTailleParticule, float fPosition, float fVitesse, float fDureeVie, CCouleur Couleur) 00024 { 00025 // Demande au gestionnaire d'effets de particules de créer une instance d'effet de particules puis récupère une pointeur sur elle 00026 CFumee* pGenerateurParticule = CParticleManager::Instance ()->CreateFumee (); 00027 if (pGenerateurParticule == 0) 00028 return 0; 00029 00030 pGenerateurParticule->m_pProprietaire = pProprietaire; 00031 pGenerateurParticule->m_fTailleParticule = fTailleParticule; 00032 pGenerateurParticule->m_fPosition = fPosition; 00033 pGenerateurParticule->m_fVitesse = fVitesse; 00034 pGenerateurParticule->m_fPrecision = 0.0f; 00035 pGenerateurParticule->m_fDureeVie = fDureeVie; 00036 pGenerateurParticule->m_Couleur = Couleur; 00037 00038 return pGenerateurParticule; 00039 } 00040 00041 // Initialisation de l'effet de particules 00042 void CFumee::Init () 00043 { 00044 00045 } 00046 00047 // Mise à jour de l'effet de particules 00048 void CFumee::Update () 00049 { 00050 for (int i = 0; i < PARTICULE_NOMBRE; i++) 00051 { 00052 if (m_pParticule[i]) 00053 { 00054 // 07/05/2004 - Suppression des particules 00055 if (m_pParticule[i]->GetFinVie () || !EstDansEcran (m_pParticule[i]->GetPosition (), m_fTailleParticule)) 00056 { 00057 delete m_pParticule[i]; 00058 m_pParticule[i] = 0; 00059 continue; 00060 } 00061 } 00062 } 00063 00064 // Création d'une particule ... 00065 // Si l'effet de fumée à un propriétaire 00066 if (m_pProprietaire) 00067 { 00068 // Si le temps entre 2 créations de particules est écoulé 00069 if (m_Timer.GetTime () > 0.01f) 00070 { 00071 m_Timer.Init (); 00072 // S'il existe un index libre 00073 int iIndex = GetIndexLibre (); 00074 if (iIndex != -1) 00075 m_pParticule[iIndex] = new CParticule (m_pProprietaire->GetPosition () + CVecteur (0, m_fPosition), CVecteur (RandFloat (- m_fPrecision * m_fVitesse, m_fPrecision * m_fVitesse), m_fVitesse), CVecteur (0, 0), m_fDureeVie, m_pProprietaire->GetBouclier () / 200.f + 0.5f); 00076 } 00077 } 00078 } 00079 00080 void CFumee::Supprimer () 00081 { 00082 m_pProprietaire = 0; 00083 m_bSupprime = true; 00084 }

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