GunFire.cpp
上传用户:hkb425
上传日期:2007-06-16
资源大小:34191k
文件大小:2k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. // GunFire.cpp: implementation of the CGunFire class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "GunFire.h"
  6. #include "texManager.h"
  7. //////////////////////////////////////////////////////////////////////
  8. // Construction/Destruction
  9. //////////////////////////////////////////////////////////////////////
  10. CGunFire::CGunFire()
  11. {
  12. m_maxFireSize=0.8f;
  13. m_minFireSize=0.5f;
  14.     m_gunFireSize=0.5f;
  15. m_fireGrowth=1.5f;
  16. m_guFireRotate=0;
  17. m_addAngle=5;
  18. }
  19. CGunFire::~CGunFire()
  20. {
  21. }
  22. void CGunFire::InitGunFire(float minSize,float maxSize)
  23. {
  24. CTexManager cTex;
  25. m_texGunFire=cTex.GetTextureID(TEX_GUN_FIRE);
  26. m_maxFireSize=maxSize;
  27. m_minFireSize=minSize;
  28. m_gunFireSize=m_maxFireSize;
  29. }
  30. void CGunFire::DrawGunFire()
  31. {
  32.     glPushMatrix();  
  33.     glRotatef(m_guFireRotate,  0.0f,0.0f,1.0f);
  34.     m_guFireRotate+=m_addAngle;
  35. if(m_guFireRotate>50)m_addAngle =-10;
  36. if(m_guFireRotate<-50)m_addAngle=10;
  37.     m_gunFireSize +=  m_fireGrowth;
  38. if(m_gunFireSize>m_maxFireSize)m_fireGrowth=-0.085f;
  39. if(m_gunFireSize<m_minFireSize)m_fireGrowth= 0.085f;
  40.     ////////////draw fire
  41.     glDisable(GL_CULL_FACE);
  42.       glBindTexture(GL_TEXTURE_2D,m_texGunFire);
  43.      glEnable(GL_TEXTURE_2D);
  44.      glBlendFunc(GL_SRC_ALPHA,GL_ONE);
  45.         glEnable(GL_BLEND);
  46.      glBegin(GL_QUADS);
  47.           glTexCoord2d(0,0); 
  48.        glVertex3d( -m_gunFireSize , -m_gunFireSize ,0);
  49.           glTexCoord2d(1,0); 
  50.        glVertex3d( m_gunFireSize , -m_gunFireSize ,0);
  51.           glTexCoord2d(1,1); 
  52.        glVertex3d(m_gunFireSize , m_gunFireSize ,0);
  53.           glTexCoord2d(0,1); 
  54.        glVertex3d(-m_gunFireSize , m_gunFireSize ,0);
  55.         glEnd();
  56.      glDisable(GL_BLEND);
  57.      glEnable(GL_CULL_FACE);
  58.     glPopMatrix();
  59. }