Advertisement
Guest User

Untitled

a guest
Nov 19th, 2019
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.69 KB | None | 0 0
  1. #include <SFML/Graphics.hpp>
  2. #include <time.h>
  3. //#include "mouvement.hpp"
  4.  
  5.  
  6. #define long_fen 1600
  7. #define haut_fen 900
  8. using namespace sf;
  9.  
  10. typedef struct
  11. {
  12. int x;
  13. int y;
  14. int vie;
  15. int angle;
  16.  
  17. } joueur;
  18. /**la caractéristique angle désigne la direction dans laquelle le perso regarde: 1= droite, 0=gauche*/
  19.  
  20.  
  21. int main()
  22. {
  23. joueur j1,j2;
  24. //initialisation données des joueurs
  25. j1.x=800;
  26. j1.y=600;
  27. j2.x=1200;
  28. j2.y=600;
  29. j1.vie=10000;
  30. j2.vie=10000;
  31. //
  32. int tempssaut1=0;
  33. int tempsdroite1=0;
  34. int tempsgauche1=0;
  35.  
  36. int tempssaut2=0;
  37. int tempsdroite2=0;
  38. int tempsgauche2=0;
  39.  
  40. int countAj1=0;
  41. int countBj1=0;
  42. int countAj2=0;
  43. int countBj2=0;
  44.  
  45.  
  46.  
  47.  
  48. //création de la fenetre
  49. RenderWindow app(VideoMode(long_fen, haut_fen), "Le combat des légendes");
  50. app.setFramerateLimit(60);
  51.  
  52. /**création de la forme des joueurs*/
  53. RectangleShape joueur1(Vector2f(90,200));//joueur 1
  54. joueur1.setPosition(j1.x,j1.y);
  55. joueur1.setFillColor(Color::Blue);
  56.  
  57. RectangleShape joueur2(Vector2f(90,200));//joueur 2
  58. joueur2.setPosition(j2.x,j2.y);
  59. joueur2.setFillColor(Color::Red);
  60. /**création des hitboxes des attaques des joueurs*/
  61. RectangleShape coupAj1(Vector2f(40,40));//atk A joueur 1
  62. coupAj1.setFillColor(Color::White);
  63.  
  64. RectangleShape coupBj1(Vector2f(800,40));//atk B joueur 1
  65. coupBj1.setFillColor(Color::White);
  66.  
  67. RectangleShape coupAj2(Vector2f(40,40));//atk A joueur 2
  68. coupAj2.setFillColor(Color::Green);
  69.  
  70. RectangleShape coupBj2(Vector2f(800,40));//atk B joueur 2
  71. coupBj2.setFillColor(Color::Green);
  72.  
  73. while (app.isOpen())
  74. {
  75.  
  76. Event event;
  77. while (app.pollEvent(event))
  78. {
  79. if (event.type == Event::Closed)
  80. app.close();
  81.  
  82. switch(event.type)
  83. {
  84. case Event::KeyPressed:
  85. /**MOUVEMENT DU PREMIER JOUEUR*/
  86. if(event.key.code==Keyboard::Right)//aller à droite
  87. {
  88. if(j1.x+10<long_fen-200)
  89. tempsdroite1=5;
  90. j1.angle=1;
  91. }
  92.  
  93. if(event.key.code==Keyboard::Left)//aller à gauche
  94. {
  95. if(j1.x-10>110)
  96.  
  97. tempsgauche1=5;
  98. j1.angle=0;
  99. }
  100.  
  101. if(event.key.code==Keyboard::Up)//sauter
  102. {
  103. if(j1.y==600)
  104. tempssaut1=20;
  105. }
  106.  
  107. /**MOUVEMENT DU DEUXIEME JOUEUR*/
  108. if(event.key.code==Keyboard::D)//aller à droite
  109. {
  110. if(j2.x+10<long_fen-200)
  111. tempsdroite2=5;
  112. j2.angle=1;
  113. }
  114.  
  115. if(event.key.code==Keyboard::Q)//aller à gauche
  116. {
  117. if(j2.x-10>110)
  118.  
  119. tempsgauche2=5;
  120. j2.angle=0;
  121. }
  122.  
  123. if(event.key.code==Keyboard::Z)//sauter
  124. {
  125. if(j2.y==600)
  126. tempssaut2=20;
  127. }
  128.  
  129. /**DEBUT DES ATTAQUES*/
  130.  
  131. /**attaque joueur 1*/
  132. if(event.key.code==Keyboard::Numpad1)//attaque A
  133. {
  134. countAj1=5;
  135. if(j1.angle==1)
  136. {
  137. coupAj1.setPosition(j1.x+90,j1.y);
  138. }
  139. else
  140. {
  141. coupAj1.setPosition(j1.x-40,j1.y);
  142. }
  143. }
  144. if(event.key.code==Keyboard::Numpad2)//attaque B
  145. {
  146. countBj1=5;
  147. if(j1.angle==1)
  148. coupBj1.setPosition(j1.x+90,j1.y);
  149. else
  150. coupBj1.setPosition(j1.x-800,j1.y);
  151.  
  152. }
  153. /**attaque joueur 2*/
  154. if(event.key.code==Keyboard::Num1)//attaque A
  155. {
  156. countAj2=5;
  157. if(j2.angle==1)
  158. {
  159.  
  160. coupAj2.setPosition(j2.x+90,j2.y);
  161. }
  162. else
  163. {
  164. coupAj2.setPosition(j2.x-40,j2.y);
  165. }
  166. }
  167. if(event.key.code==Keyboard::Num2)//attaque B
  168. {
  169. countBj2=5;
  170. if(j2.angle==1){
  171. coupBj2.setPosition(j2.x+90,j2.y);}
  172. else{
  173. coupBj2.setPosition(j2.x-800,j2.y);
  174. }
  175. }
  176. //a virer plus tard
  177. if(event.key.code==Keyboard::V)//pour afficher la vie
  178. {
  179. printf("\nvie du joueur 1 : %i\nvie du joueur 2 : %i\n",j1.vie,j2.vie);
  180. }
  181.  
  182.  
  183.  
  184.  
  185.  
  186. break;
  187. }
  188.  
  189. }
  190. /**MOUVEMENT PREMIER JOUEUR*/
  191. if(tempssaut1!=0)
  192. {
  193. if(tempssaut1>=11)
  194. {
  195. j1.y-=20;
  196.  
  197. }
  198. else if (tempssaut1<11)
  199. {
  200. j1.y+=20;
  201. }
  202. tempssaut1-=1;
  203. }
  204. if(tempsdroite1!=0)
  205. {
  206. j1.x+=15;
  207. tempsdroite1-=1;
  208. }
  209. if(tempsgauche1!=0)
  210. {
  211. j1.x-=15;
  212. tempsgauche1-=1;
  213. }
  214.  
  215.  
  216. /**MOUVEMENT DEUXIEME JOUEUR*/
  217. if(tempssaut2!=0)
  218. {
  219. if(tempssaut2>=11)
  220. {
  221. j2.y-=20;
  222.  
  223. }
  224. else if(tempssaut2<11)
  225. {
  226. j2.y+=20;
  227. }
  228. tempssaut2-=1;
  229. }
  230. if(tempsdroite2!=0)
  231. {
  232. j2.x+=15;
  233. tempsdroite2-=1;
  234. }
  235. if(tempsgauche2!=0)
  236. {
  237. j2.x-=15;
  238. tempsgauche2-=1;
  239. }
  240.  
  241.  
  242.  
  243. /**DETECTION DES DEGATS*/
  244.  
  245. /**si j2 touché par attaque A du j1*/
  246. if(countAj1>0)
  247. {
  248. if(j1.angle==1)
  249. {
  250. if((j1.x+90<=j2.x&&j1.x+90+40>=j2.x)||(j1.x+90<=j2.x+90&&j1.x+90+40>=j2.x+90)||(j1.x+90>=j2.x&&j1.x+90+40<=j2.x+90))
  251. {
  252. //test de hauteur
  253. printf("il y a une collision\n");
  254. j2.vie-=100;
  255.  
  256. }
  257. else
  258. printf("pas de collision\n");
  259. }
  260. else
  261. {
  262. if((j1.x-40<=j2.x&&j1.x>=j2.x)||(j1.x-40<=j2.x+90&&j1.x>=j2.x+90)||(j1.x-40>=j2.x&&j1.x<=j2.x+90))
  263. {
  264. //test de hauteur
  265. printf("il y a une collision\n");
  266. j2.vie-=100;
  267. }
  268. else
  269. printf("pas de collision\n");
  270. }}
  271.  
  272.  
  273.  
  274. /**si j2 touché par attaque B du j1*/
  275.  
  276.  
  277.  
  278. /**si j1 touché par attaque A du j2*/
  279. if(countAj2>0)
  280. {
  281. if(j2.angle==1)
  282. {
  283. if((j2.x+90<=j1.x&&j2.x+90+40>=j1.x)||(j2.x+90<=j1.x+90&&j2.x+90+40>=j1.x+90)||(j2.x+90>=j1.x&&j2.x+90+40<=j1.x+90))
  284. {
  285. //test de hauteur
  286. printf("il y a une collision\n");
  287. j1.vie-=100;
  288.  
  289. }
  290. else
  291. printf("pas de collision\n");
  292. }
  293. else
  294. {
  295. if((j2.x-40<=j1.x&&j2.x>=j1.x)||(j2.x-40<=j1.x+90&&j2.x>=j1.x+90)||(j2.x-40>=j1.x&&j2.x<=j1.x+90))
  296. {
  297. //test de hauteur
  298. printf("il y a une collision\n");
  299. j1.vie-=100;
  300. }
  301. else
  302. printf("pas de collision\n");
  303. }
  304.  
  305.  
  306.  
  307. }
  308. /**si j1 touché par attaque B du j2*/
  309. if(countBj2>0)
  310. {
  311. if(j2.angle==1)//j2 regarde à droite
  312. {
  313. if((j2.x+90<=j1.x&&j2.x+90+800>=j1.x)||(j2.x+90<=j1.x&&j2.x+90+800>=j1.x+90)||(j2.x+90<=j1.x+90&&j2.x+90+800>=j1.x+90))
  314. {
  315. //test de hauteur
  316. printf("il y a une collision\n");
  317. j1.vie-=50;
  318.  
  319. }
  320. else
  321. printf("pas de collision\n");
  322. }
  323. else
  324. {
  325. if((j2.x>=j1.x&&j2.x-800<=j1.x)||(j2.x>=j1.x+90&&j2.x-800<=j1.x)||(j2.x>=j1.x+90&&j2.x-800>=j1.x))
  326. {
  327. //test de hauteur
  328. printf("il y a une collision\n");
  329. j1.vie-=50;
  330. }
  331. else
  332. printf("pas de collision\n");
  333. }
  334.  
  335.  
  336.  
  337. }
  338. ////////////////////////
  339.  
  340.  
  341. app.clear();
  342. joueur1.setPosition(j1.x,j1.y);
  343. joueur2.setPosition(j2.x,j2.y);
  344.  
  345. app.draw(joueur1);
  346. app.draw(joueur2);
  347.  
  348. if(countAj1>0)
  349. {
  350. app.draw(coupAj1);
  351. countAj1-=1;
  352. }
  353.  
  354. if(countBj1>0)
  355. {
  356. app.draw(coupBj1);
  357. countBj1-=1;
  358. }
  359.  
  360. if(countAj2>0)
  361. {
  362. app.draw(coupAj2);
  363. countAj2-=1;
  364. }
  365.  
  366. if(countBj2>0)
  367. {
  368. app.draw(coupBj2);
  369. countBj2-=1;
  370. }
  371.  
  372.  
  373.  
  374.  
  375.  
  376. app.display();
  377.  
  378.  
  379.  
  380. }
  381.  
  382. return EXIT_SUCCESS;
  383. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement