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

游戏引擎

开发平台:

Visual C++

  1. // PlantManager.cpp: implementation of the CPlantManager class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "PlantManager.h"
  6. #include <stdio.h>
  7. //////////////////////////////////////////////////////////////////////
  8. // Construction/Destruction
  9. //////////////////////////////////////////////////////////////////////
  10. CPlantManager::CPlantManager()
  11. {
  12. }
  13. CPlantManager::~CPlantManager()
  14. {
  15. }
  16. bool CPlantManager::InitPlantManager()
  17. {
  18. if(!m_cTree1.Init3DTree(1,1.2f))
  19. {
  20. MessageBox(0, "Init house failed", "Error", MB_OK | MB_ICONERROR);
  21. return FALSE;
  22. }
  23. if(!m_cTree2.Init3DTree(2,1.0f))
  24. {
  25. MessageBox(0, "Init house failed", "Error", MB_OK | MB_ICONERROR);
  26. return FALSE;
  27. }
  28. if(!m_cBush1.InitBush(1))
  29. {
  30. MessageBox(0, "Init house failed", "Error", MB_OK | MB_ICONERROR);
  31. return FALSE;
  32. }
  33. if(!m_cPine.InitPine(1,2.0f))
  34. {
  35. MessageBox(0, "Init house failed", "Error", MB_OK | MB_ICONERROR);
  36. return FALSE;
  37. }
  38. return true;
  39. }
  40. void CPlantManager::RenderPlant()
  41. {
  42. int tx,tz; // in terrain map
  43. int cx,cz; // in cover map
  44. int type;
  45. VERTEX pos;
  46. for(int x=108;x<148; x++)
  47. {
  48.     for(int z= 108;z<148; z++)
  49. {
  50. if(m_cHmap.m_cFrustumCull.IsInFrustum(x,z))
  51. {
  52.     tx=m_cHmap.m_pMovemap[z*256+x].xpos;
  53.     tz=m_cHmap.m_pMovemap[z*256+x].zpos;
  54. pos=m_cHmap.ConvertToWorld(x,z);
  55. cx=tx/4;
  56. cz=tz/4;
  57. type=m_cHmap.m_pCovermap[cz*64+cx];
  58. if(type!=0)
  59. {
  60.      pos.xpos+=m_cHmap.m_pCoverBias[cz*64+cx].xbias;
  61.      pos.zpos+=m_cHmap.m_pCoverBias[cz*64+cx].zbias;
  62. if(type>130)
  63.         pos.ypos=m_cHmap.GetHeight(pos.xpos,pos.zpos)-2;
  64. else
  65.         pos.ypos=m_cHmap.GetHeight(pos.xpos,pos.zpos)-1;
  66. if(type==64)
  67.             m_cBush1.RenderBush(pos);
  68. if(type==128)
  69.             m_cPine.RenderPine(pos);
  70. if(type==192)
  71.             m_cTree1.Render3DTree(pos);
  72. if(type==255)
  73.             m_cTree2.Render3DTree(pos);
  74. }
  75. }
  76. }
  77. }
  78. }