home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 July & August / PCWorld_2006-07-08_cd.bin / temacd / planearcade / planearcade.exe / Tank3.bmp / messerschmitt.h < prev    next >
C/C++ Source or Header  |  2004-10-16  |  4KB  |  154 lines

  1.  
  2. //===============================================================
  3. #ifndef _MESSERSCHMITT_H_
  4. #define _MESSERSCHMITT_H_
  5. //===============================================================
  6. //nepriatelske lietadlo
  7.  
  8. //rychlos¥
  9. #define MesserSchmitt_Speed 10.5f
  10.  
  11. //kolizne a gulometove body
  12. #define MesserSchmitt_Left  Get3D(-40.0f,0.0f,0.0f)
  13. #define MesserSchmitt_Right Get3D(40.0f,0.0f,0.0f)
  14. #define MesserSchmitt_Up    Get3D(0.0f,6.0f,0.0f)
  15. #define MesserSchmitt_Down  Get3D(0.0f,-6.0f,0.0f)
  16. #define MesserSchmitt_Front Get3D(0.0f,0.0f,20.0f)
  17. #define MesserSchmitt_Back  Get3D(0.0f,0.0f,-43.0f)
  18. #define MesserSchmitt_BulletLeft  Get3D(-15.0f,-5.0f,0.0f)
  19. #define MesserSchmitt_BulletRight Get3D(15.0f,-5.0f,0.0f)
  20.  
  21. //pozicia vrtule
  22. #define MesserSchmitt_VrtulaPoint Get3D(0.0f,2.0f,20.0f)
  23.  
  24. //frekvencia strielania
  25. #define MesserSchmitt_BulletFreq 130.0f
  26.  
  27. //hlasitost zvuku
  28. #define MesserSchmitt_SoundScale  125.0f
  29.  
  30. //kedy po zostreleni zmizne
  31. #define MesserSchmitt_DestroyTime 15000.0f
  32.  
  33. //Ai mody
  34. #define MesserSchmitt_SledovanieMaxTime   12000.0f
  35. #define MesserSchmitt_VyhybanieMaxTime      500.0f
  36. #define MesserSchmitt_UhybanieMaxTime     3500.0f
  37.  
  38. //advanced mode - Mode 1
  39. #define MesserSchmitt_AdSteerZ1   0.008f  //vodorovne
  40. #define MesserSchmitt_AdSteerZ2   0.028f  //vodorovne - rychlo
  41. #define MesserSchmitt_AdSteerZ3   0.07f  //vodorovne - velmy rychlo - pri uhybani
  42. #define MesserSchmitt_AdSteerX1   0.007f  //vertikalne
  43. #define MesserSchmitt_AdSteerX2   0.02f  //vertikalne -  rychlo
  44. #define MesserSchmitt_AdSteerX3   0.05f  //vertikalne - velmy rychlo - pri uhybani
  45. #define MesserSchmitt_AdMaxSteerZ 1.0f  //maximalny zatocenie vodorovne
  46. #define MesserSchmitt_AdMaxSteerX 1.0f  //maximalne zatocenie vertikalne
  47.  
  48. //benginer mode - Mode 0
  49. #define MesserSchmitt_BeSteerZ1   0.003f  //vodorovne
  50. #define MesserSchmitt_BeSteerZ2   0.01f  //vodorovne - rychlo
  51. #define MesserSchmitt_BeSteerZ3   0.03f  //vodorovne - velmy rychlo - pri uhybani
  52. #define MesserSchmitt_BeSteerX1   0.003f  //vertikalne
  53. #define MesserSchmitt_BeSteerX2   0.01f  //vertikalne -  rychlo
  54. #define MesserSchmitt_BeSteerX3   0.05f  //vertikalne - velmy rychlo - pri uhybani
  55. #define MesserSchmitt_BeMaxSteerZ 0.6f  //maximalny zatocenie vodorovne
  56. #define MesserSchmitt_BeMaxSteerX 1.0f  //maximalne zatocenie vertikalne
  57.  
  58. //--------------------------------------------------------------
  59. // Name: MESSERSCHMITT class
  60. // Desc: nemecke nepriatelske lietadlo Messerschmitt
  61. //--------------------------------------------------------------
  62. class MESSERSCHMITT
  63. {
  64. private:
  65.     
  66.     //zisti koliziu zeme
  67.     bool GetGroundCollision();
  68.  
  69.     //zvuk
  70.     SOUND Sound;
  71.     bool SoundPlay;
  72.  
  73.     //AI
  74.     void ProcessSledovanie();
  75.     void ProcessVyhybanie();
  76.     void ProcessUhybanie();
  77.  
  78.  
  79. public:
  80.  
  81.     //vlastnosti
  82.     int Life;
  83.  
  84.     //aktivacia
  85.     bool Active;
  86.     float ActiveTime;
  87.  
  88.     //mod umelej inteligencie
  89.     int Mode;
  90.  
  91.     //premenne Ai
  92.     float SteerZ1;
  93.     float SteerZ2;
  94.     float SteerZ3;
  95.     float SteerX1;
  96.     float SteerX2;
  97.     float SteerX3;
  98.     float MaxSteerZ;
  99.     float MaxSteerX;
  100.  
  101.     //m≤dy
  102.     bool NormalMode;
  103.     bool CrazyMode;
  104.     bool DestroyedMode;
  105.  
  106.     //AI mody
  107.     bool Sledovanie;    //utocny mod
  108.     bool Vyhybanie;        //vyhnutie sa zemi
  109.     bool Uhybanie;      //ked dostal zasah tak sa uhne
  110.     float AITime;
  111.  
  112.     //vrtula
  113.     float VrtulaRotation;
  114.     VECTOR3D PV;
  115.  
  116.     //pozicia a matica
  117.     VECTOR3D Pos;
  118.     VECTOR3D Rot;
  119.     D3DXMATRIX Matrix;
  120.  
  121.     //kolizne body
  122.     VECTOR3D PL,PR,PU,PD,PF,PB ;
  123.  
  124.     //AI
  125.     VECTOR3D SpitFirePoint;
  126.     float Distance;
  127.  
  128.     //strely
  129.     BULLETSYSTEM Bullet;
  130.     VECTOR3D BL,BR;
  131.     float BulletTime;
  132.  
  133.     //zastav zvuk
  134.     void StopSound();
  135.  
  136.     //inicializacia 
  137.     void Initialize();
  138.  
  139.     //system
  140.     void Reset();
  141.  
  142.     //refresh & render
  143.     void Refresh();
  144.  
  145.     //kolizia s lietadlom
  146.     bool CollisionDetail(VECTOR3D P1, VECTOR3D P2);
  147.     bool CollisionBox(VECTOR3D P1, VECTOR3D P2);
  148.  
  149.  
  150. };
  151.  
  152.  
  153. //===============================================================
  154. #endif //_MESSERSCHMITT_H_