You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

BoatControlPerso.cpp 9.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. #include "..\C-Engine\CHeader.hpp"
  2. #include"BoatControl.hpp"
  3. #include "BoatControlPerso.hpp"
  4. extern "C"
  5. {
  6. #include <math.h>
  7. }
  8. void BoatControlPerso::Start()
  9. {
  10. StartBoat();
  11. BateauActuelle->VoilesLateralle.Pourcentage = 0;//On set les voiles à 0.
  12. BateauActuelle->VoilesLongitudinal.Pourcentage = 0;
  13. BateauActuelle->masse = 500;//Il pèse 500 kg.
  14. VentActuelle->direction = 180; //Direction du vent et force
  15. VentActuelle->force = 3;
  16. BateauActuelle->CanonDroit.couldown = 100;
  17. BateauActuelle->CanonGauche.couldown = 100;
  18. BateauActuelle->viemax = 30;//Vie max du joueur 30 pt de vie.
  19. BateauActuelle->vie = BateauActuelle->viemax ;
  20. }
  21. void BoatControlPerso::Update()
  22. {
  23. UpdateBoat();
  24. int nbpirate = CheckBoat();
  25. if(input_trigger(K_EXIT))GetEngine()->StopGame();//Bouton quitté.
  26. if(input_trigger(K_VARS))Fire(90);//Bouton pour tirer.
  27. if(input_trigger(K_SHIFT))Fire(-90);
  28. if(input_trigger(K_POW))AfficherMap();// Bouton pour afficher la map
  29. switch(input_dir4())//Bouton pour tourner le bateau.
  30. {
  31. case 6:
  32. Turn(-2);
  33. break;
  34. case 4:
  35. Turn(2);
  36. break;
  37. default: break;
  38. }
  39. if(input_press(K_F4))//Boutons pour lever ou descendre les voiles.
  40. {
  41. BateauActuelle->VoilesLongitudinal.Pourcentage = BateauActuelle->VoilesLongitudinal.Pourcentage - 5;
  42. }
  43. if(input_press(K_F5))
  44. {
  45. BateauActuelle->VoilesLongitudinal.Pourcentage = BateauActuelle->VoilesLongitudinal.Pourcentage + 5;
  46. }
  47. if(input_press(K_F2))
  48. {
  49. BateauActuelle->VoilesLateralle.Pourcentage = BateauActuelle->VoilesLateralle.Pourcentage - 5;
  50. }
  51. if(input_press(K_F3))
  52. {
  53. BateauActuelle->VoilesLateralle.Pourcentage = BateauActuelle->VoilesLateralle.Pourcentage + 5;
  54. }
  55. Object * Buffer = GetObject()->CollisionTagO("BouletP");
  56. if(Buffer != NULL) // Si on se prend un boulet alors on perd une vie.
  57. {
  58. GetEngine()->DelObject(Buffer);
  59. BateauActuelle->vie --;
  60. }
  61. GetEngine()->MiddleScreen( GetX() + 25, (GetY() + 8));//On place la caméra centré sur le joueur.
  62. PrintV(1,2,objectifmax - nbpirate);//Afficher le nombre de bateaux pirate détruit
  63. ML_line(6,6,8,1,ML_BLACK);
  64. PrintV(10,2,objectifmax);
  65. PrintV(88 , 2 , GetX());//On affiche nos cordonnées.
  66. PrintV(88 , 10 , GetY());
  67. if(nbpirate <= 0)//Si il n'y a plus de pirate alors gagné.
  68. {
  69. GetEngine()->StopGame();
  70. while(input_trigger(K_EXE) == 0)
  71. {
  72. input_update();
  73. ML_clear_vram();
  74. PrintXY(13 , 28 , "Mission Reussi !!!" , 0);
  75. ML_display_vram();
  76. }
  77. }
  78. if( BateauActuelle->vie <= 0)//Si plus de vie alors perdu.
  79. {
  80. GetEngine()->StopGame();
  81. while(input_trigger(K_EXE) == 0)
  82. {
  83. input_update();
  84. ML_clear_vram();
  85. PrintXY(5 , 28 , "Vous avez echoue !!!" , 0);
  86. ML_display_vram();
  87. }
  88. }
  89. }
  90. void BoatControlPerso::AfficherMap()
  91. {
  92. bool end = false;//Pour Afficher la map
  93. bool aperso = true;
  94. int x;
  95. int y;
  96. const unsigned char MiniMap[]={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1c, 0x0, 0x1, 0xc0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x1, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x1c, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x1, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0x80, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0xc0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xc0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0xc0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xfe, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf8, 0x0, 0x0, 0x1, 0xc0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfb, 0x0, 0x0, 0x0, 0x66, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x3, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x1, 0x3f, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1f, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x6, 0x0, 0x0, 0x1, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x1, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80, 0x0, 0x1e, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0x80, 0x0, 0x3, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0x80, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0x0, 0x0, 0x7, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf0, 0x0, 0x0, 0x7, 0x48, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xf0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xc0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xe0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe7, 0xf8, 0x0, 0x1, 0x1, 0x1f, 0x80, 0x0, 0x0, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x0, 0x1, 0x3, 0x1f, 0xc0, 0x0, 0x0, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0x1, 0x3, 0x1f, 0xc0, 0x0, 0x0, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xf0, 0x1, 0x1f, 0x1f, 0xc0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1c, 0x1, 0x7, 0x8f, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x1, 0x0, 0x83, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0xf, 0xc7, 0x1, 0x0, 0x80, 0x26, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xf0, 0x38, 0x1, 0x0, 0x6, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x80, 0x0, 0x1, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x80, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xc0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xc0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x1, 0x80, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x6, 0x0, 0x70, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x3, 0x0, 0x20, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd8, 0x0, 0x0, 0xe, 0x79, 0x86, 0x0, 0x60, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xfc, 0x80, 0x0, 0x1f, 0xfe, 0x0, 0x1, 0x40, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0xc0, 0x0, 0x7, 0xff, 0x0, 0x1, 0x80, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0x80, 0x0, 0x0, 0xbf, 0x0, 0x0, 0xf0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0xe, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0x0, 0x1, 0xf0, 0x0, 0x1, 0x0, 0x0, 0x1, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x30, 0x0, 0x1, 0x0, 0x0, 0x0, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x0, 0x0, 0xe0, 0x0, 0x1, 0x0, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x80, 0x3, 0x80, 0x0, 0x1, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xf0, 0x3, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0xb0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x1, };
  97. x = GetX() * 127 / 1200;
  98. y = 63 - ( GetY() * 63 / 1200);
  99. while(end == false)
  100. {
  101. input_update();
  102. if(input_trigger(K_EXE) || input_trigger(K_POW))end = true;
  103. ML_clear_vram();
  104. ML_bmp_or(MiniMap,0,0,127,63);
  105. if(aperso == true)
  106. {
  107. ML_point( x , y , 1 , ML_BLACK);
  108. aperso = false;
  109. }
  110. else
  111. {
  112. ML_point( x , y , 1 , ML_WHITE);
  113. aperso = true;
  114. }
  115. ML_display_vram();
  116. Sleep(200);
  117. }
  118. }
  119. int BoatControlPerso::CheckBoat()//Fonction qui renvoie le nombre de bateaux pirate sur la map.
  120. {
  121. int a = 0;
  122. for(int i = 0; i < GetEngine()->GetNbObject() ; i++)
  123. {
  124. if( strcmp(GetEngine()->GetListeObject()[i]->GetTag() , "Pirate") == 0)
  125. {
  126. a++;
  127. }
  128. }
  129. return a;
  130. }