Advertisement
Guest User

Untitled

a guest
Jan 20th, 2020
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.88 KB | None | 0 0
  1. #include<iostream>
  2. #include<conio.h>
  3. #include<Windows.h>
  4. using namespace std;
  5. struct player
  6. {
  7. //the array for the hero
  8. char hero[5];
  9. //for side scrolling
  10. int lvldir = 0;
  11. int lvldir2 = 0;
  12. int jumppressed = 0;
  13. int gravityexists = 0;
  14. int jump = 0;
  15. int templvldir = 0;
  16. };
  17. struct elevator
  18. {
  19. char ele[6] = { '=','=','=','=','=','=' };
  20. };
  21. //function for filling the borders of the game (below)
  22. void fillborders(char level[][200], player &x)
  23. {
  24. for (int c = 0; c < 200; c++)
  25. {
  26. level[0][c] = 205;
  27. level[23][c] = 205;
  28. }
  29. for (int r = 1; r < 23; r++)
  30. {
  31. level[r][0] = 186;
  32. level[r][200] = 186;
  33. }
  34. /*for (int i = 30; i < 40; i++)
  35. {
  36. level[23][i]=' ';
  37. }*/
  38. for (int c = 1; c < 170; c++)
  39. {
  40. if (c == 47 || c == 48 || c == 49 || c == 50 || c == 51 || c == 52 || c == 53 || c == 54 || c == 55)
  41. {
  42.  
  43. }
  44. else
  45. level[17][c] = 205;
  46. }
  47. level[0][0] = 201;
  48. level[0][200] = 187;
  49. level[23][0] = 200;
  50. level[23][200] = 188;
  51. for (int r = 16; r > 9; r--)
  52. {
  53. level[r][74] = 186;
  54. }
  55. for (int c = 74; c < 105; c++)
  56. {
  57. level[9][c] = 205;
  58. }
  59. for (int r = 10; r < 17; r++)
  60. {
  61. level[r][104] = 186;
  62. }
  63. /*for (int c = 10; c < 20; c++)
  64. {
  65. level[12][c] = 178;
  66. }*/
  67. }
  68. //function for filling the screen (below)
  69. void fillmat(char view[][80], char level[][200], player &x)
  70. {
  71.  
  72. for (int r = 0; r < 24; r++)
  73. {
  74. for (int c = 0; c < 80; c++)
  75. {
  76. /*if (x.lvldir2 % 2 == 0 && x.lvldir == 0)
  77. {
  78. view[r][c] = level[r][c - 1];
  79. }
  80. else if (x.lvldir2 % 2 == 1 && x.lvldir == 1)
  81. {
  82. view[r][c] = level[r][c + 1];
  83. }
  84. else if (x.lvldir == 8)
  85. {
  86. view[r][c] = level[r][c];
  87. }*/
  88. view[r][c] = level[r][c + x.lvldir];
  89. }
  90. }
  91. for (int r = 0; r < 24; r++)
  92. {
  93. for (int c = 0; c < 200; c++)
  94. {
  95. level[r][c] = ' ';
  96. }
  97. }
  98. }
  99.  
  100. //function for displaying the screen (below)
  101. void disp(char view[][80], char level[][200])
  102. {
  103. system("cls");
  104. for (int r = 0; r < 24; r++)
  105. {
  106. for (int c = 0; c < 80; c++)
  107. {
  108. cout << view[r][c];
  109.  
  110. }
  111. }
  112. cout.flush();
  113. Sleep(10);
  114. }
  115. //function for setting the hero in the screen (below)
  116. void setherointhemat(char view[][80], char level[][200], int&rhero, int&chero, player &x, char &orientation)
  117. {
  118. if (orientation != 'r' || orientation != 'l')
  119. {
  120. view[rhero][chero] = x.hero[0];
  121. view[rhero][chero + 1] = x.hero[1];
  122. view[rhero][chero + 2] = x.hero[2];
  123. view[rhero][chero + 3] = x.hero[3];
  124. view[rhero][chero + 4] = x.hero[4];
  125. view[rhero][chero + 5] = x.hero[5];
  126. view[rhero][chero + 6] = '~';
  127. }
  128. if (orientation == 'r')
  129. {
  130. view[rhero][chero] = x.hero[0];
  131. view[rhero][chero + 1] = x.hero[1];
  132. view[rhero][chero + 2] = x.hero[2];
  133. view[rhero][chero + 3] = x.hero[3];
  134. view[rhero][chero + 4] = x.hero[4];
  135. view[rhero][chero + 5] = x.hero[5];
  136. view[rhero][chero + 6] = '~';
  137. }
  138. if (orientation == 'l')
  139. {
  140. /*view[rhero][chero - 1] = '~';*/
  141. view[rhero][chero] = x.hero[0];
  142. view[rhero][chero + 1] = x.hero[2];
  143. view[rhero][chero + 2] = x.hero[3];
  144. view[rhero][chero + 3] = x.hero[4];
  145. view[rhero][chero + 4] = x.hero[1];
  146. view[rhero][chero + 5] = x.hero[5];
  147.  
  148. }
  149. }
  150. //void SetBullet(char view[][80],char x[][200], int& rhero, int& chero, char&choice, char cbullet[198], int& flag, char& HeroDirection)
  151. //{
  152. // /*/ Set the bullet after the hero infront of the GUN/*/
  153. // /*/Single bullet /*/
  154. // if (choice == 'v')
  155. // {
  156. // /*/ print the bullet when the key is hit /*/
  157. // if (HeroDirection == 'r')
  158. // {
  159. // view[rhero][chero + 6] = '~';
  160. // cbullet[chero + 6] = '~';
  161. // flag = 1;
  162. // }
  163. // else if (HeroDirection == 'l')
  164. // {
  165. // view[rhero][chero - 2] = '~';
  166. // cbullet[chero - 2] = '~';
  167. // flag = 1;
  168. // }
  169. // }
  170. // /*/ double bullets /*/
  171. // if (choice == 'c')
  172. // {
  173. // if (HeroDirection == 'r')
  174. // {
  175. // view[rhero][chero + 6] = '~';
  176. // view[rhero][chero + 7] = '~';
  177. // cbullet[chero + 6] = '~';
  178. // cbullet[chero + 7] = '~';
  179. // flag = 1;
  180. // }
  181. // else if(HeroDirection == 'l')
  182. // {
  183. // view[rhero][chero - 2] = '~';
  184. // view[rhero][chero - 3] = '~';
  185. // cbullet[chero - 2] = '~';
  186. // cbullet[chero - 3] = '~';
  187. // flag = 1;
  188. // }
  189. // }
  190. //
  191. //}
  192. //void MoveBullets(char x[][200], int& rhero, int& chero, char cbullet[198], char &orientation)
  193. //{
  194. // /*/ Shift the bullets /*/
  195. // /*Moving bullets in the right direction - if the bullet located on the right of the hero */
  196. //
  197. // for (int i = 198; i > (chero + 6); i--)
  198. // {
  199. // /*/ Check if bullet found /*/
  200. // if (x[rhero][i] == '~')
  201. // {
  202. // /*/ Check if the bullet position + 1 is empty /*/
  203. // if (x[rhero][i + 7] == ' ')
  204. // {
  205. // /*/ Shift bullet /*/
  206. // x[rhero][i + 6] = '~';
  207. // x[rhero][i] = ' ';
  208. // cbullet[i + 6] = '~';
  209. // cbullet[i] = ' ';
  210. // }
  211. // else if(x[rhero][i+7] !=' ')
  212. // {
  213. // /*/ Obsacle detected then delete bullet /*/
  214. //
  215. // x[rhero][i] = ' ';
  216. // cbullet[i] = ' ';
  217. //
  218. // /*if (x[rhero - 1][i] == 178)
  219. // {
  220. // x[rhero - 1][i] = ' ';
  221. // cbullet[i] = ' ';
  222. // }*/
  223. // //flag = 0;
  224. // /*/ TODO: check if obsactle or enemy /*/
  225. // }
  226. // }
  227. // }
  228. //
  229. // /*Moving bullets in the left direction - if the bullet located on the left of the hero */
  230. // //if (orientation == 'l')
  231. // //{
  232. // // for (int i = 1; i < (chero - 2); i--)
  233. // // {
  234. // // /*/ Check if bullet found /*/
  235. // // if (x[rhero][i] == '~')
  236. // // {
  237. // // /*/ Check if the bullet position + 4 is empty /*/
  238. // // if (x[rhero][i - 2] == ' ')
  239. // // {
  240. // // /*/ Shift bullet /*/
  241. // // x[rhero][i - 2] = '~';
  242. // // x[rhero][i] = ' ';
  243. // // cbullet[i - 2] = '~';
  244. // // cbullet[i] = ' ';
  245. // // }
  246. // // else
  247. // // {
  248. // // /*/ Obsacle detected then delete bullet /*/
  249. // // if (x[rhero][i - 2] == 186)
  250. // // {
  251. // // x[rhero][i] = ' ';
  252. // // cbullet[i] = ' ';
  253. // // }
  254. // // //flag = 0;
  255. // // /*/ TODO: check if obsactle or enemy /*/
  256. // // }
  257. // // }
  258. // // }
  259. // // }
  260. //}
  261. //void DrawBullet(char x[][200], int rhero, char cbullet[198])
  262. //{
  263. // /*Draw bullet in the matrix */
  264. // for (int i = 0; i < 198; i++)
  265. // {
  266. // if (cbullet[i] == '~'&&cbullet[i+1]==' ')
  267. // {
  268. // x[rhero][i] = cbullet[i];
  269. // }
  270. // }
  271. //}
  272.  
  273. class enemy
  274. {
  275. public:
  276. char one[6];
  277. char two[6];
  278. char three[6];
  279. int renm, cenm, maxen, minen, counter, cc, deathtrigger;
  280. void setenemy(char level[][200], int rm, int cm, int&dt)
  281. {
  282. if (dt == 0)
  283. {
  284. level[rm + 4][cm + 8] = '_';
  285. level[rm + 4][cm + 9] = 'M';
  286. level[rm + 4][cm + 10] = '_';
  287. level[rm + 4][cm + 11] = '_';
  288. level[rm + 4][cm + 12] = '_';
  289. level[rm + 4][cm + 13] = '_';
  290. level[rm + 4][cm + 14] = 'M';
  291. level[rm + 4][cm + 15] = '_';
  292. level[rm + 5][cm + 7] = '/';
  293. level[rm + 5][cm + 10] = '-';
  294. level[rm + 5][cm + 11] = '-';
  295. level[rm + 5][cm + 12] = '-';
  296. level[rm + 5][cm + 13] = '-';
  297. level[rm + 5][cm + 16] = '\\';
  298. level[rm + 6][cm + 6] = '/';
  299. level[rm + 6][cm + 9] = '/';
  300. level[rm + 6][cm + 14] = '\\';
  301. level[rm + 6][cm + 17] = '\\';
  302. level[rm + 7][cm + 6] = '|';
  303. level[rm + 7][cm + 9] = '|';
  304. level[rm + 7][cm + 11] = '0';
  305. level[rm + 7][cm + 10] = '0';
  306. level[rm + 7][cm + 14] = '|';
  307. level[rm + 7][cm + 17] = '|';
  308. level[rm + 8][cm + 6] = '\\';
  309. level[rm + 8][cm + 9] = '|';
  310. level[rm + 8][cm + 11] = '_';
  311. level[rm + 8][cm + 12] = '_';
  312. level[rm + 8][cm + 14] = '|';
  313. level[rm + 8][cm + 17] = '/';
  314. level[rm + 9][cm + 7] = '\\';
  315. level[rm + 9][cm + 8] = '_';
  316. level[rm + 9][cm + 9] = '?';
  317. level[rm + 9][cm + 14] = '?';
  318. level[rm + 9][cm + 15] = '_';
  319. level[rm + 9][cm + 16] = '/';
  320. level[rm + 10][cm + 9] = '=';
  321. level[rm + 10][cm + 10] = '=';
  322. level[rm + 10][cm + 11] = '=';
  323. level[rm + 10][cm + 12] = '=';
  324. level[rm + 10][cm + 13] = '=';
  325. level[rm + 10][cm + 14] = '=';
  326. level[rm + 11][cm + 6] = '>';
  327. level[rm + 11][cm + 7] = '=';
  328. level[rm + 11][cm + 8] = '=';
  329. level[rm + 11][cm + 9] = '=';
  330. level[rm + 11][cm + 10] = '|';
  331. level[rm + 11][cm + 14] = '|';
  332. level[rm + 11][cm + 15] = '=';
  333. level[rm + 11][cm + 16] = '=';
  334. level[rm + 11][cm + 17] = '=';
  335. level[rm + 11][cm + 18] = '<';
  336. level[rm + 12][cm + 10] = '|';
  337. level[rm + 12][cm + 12] = '_';
  338. level[rm + 12][cm + 14] = '|';
  339. level[rm + 13][cm + 10] = '|';
  340. level[rm + 13][cm + 11] = '|';
  341. level[rm + 13][cm + 13] = '|';
  342. level[rm + 13][cm + 14] = '|';
  343. level[rm + 14][cm + 10] = '|';
  344. level[rm + 14][cm + 11] = '|';
  345. level[rm + 14][cm + 13] = '|';
  346. level[rm + 14][cm + 14] = '|';
  347. level[rm + 15][cm + 9] = '0';
  348. level[rm + 15][cm + 10] = '0';
  349. level[rm + 15][cm + 11] = '0';
  350. level[rm + 15][cm + 13] = '0';
  351. level[rm + 15][cm + 14] = '0';
  352. level[rm + 15][cm + 15] = '0';
  353. }
  354.  
  355. }
  356. void setenemyone(char level[][200], int &rone, int &cone, int&dt)
  357. {
  358. if (dt == 0)
  359. {
  360. level[rone][cone] = one[0];
  361. level[rone][cone + 1] = one[1];
  362. level[rone][cone + 1] = one[2];
  363. level[rone][cone + 2] = one[3];
  364. level[rone][cone + 3] = one[4];
  365. level[rone][cone + 4] = one[5];
  366. }
  367. }
  368. void setenemytwo(char level[][200], int &rtwo, int &ctwo, int&dt)
  369. {
  370. if (dt == 0)
  371. {
  372. level[rtwo][ctwo] = two[0];
  373. /*level[rtwo][ctwo + 1] = two[1];*/
  374. level[rtwo][ctwo + 1] = two[2];
  375. level[rtwo][ctwo + 2] = two[3];
  376. level[rtwo][ctwo + 3] = two[4];
  377. level[rtwo][ctwo + 4] = two[5];
  378. }
  379. }
  380. void setenemythree(char level[][200], int &rthree, int &cthree, int&dt)
  381. {
  382. if (dt == 0)
  383. {
  384. level[rthree][cthree] = three[0];
  385. /*level[rthree][cthree + 1] = three[1];*/
  386. level[rthree][cthree + 1] = three[2];
  387. level[rthree][cthree + 2] = three[3];
  388. level[rthree][cthree + 3] = three[4];
  389. level[rthree][cthree + 4] = three[5];
  390. }
  391. }
  392.  
  393. //function for creating movement for the enemy (below)
  394. void moveenemy(int&rm, int&cm, char level[][200], int &counter, int max, int min)
  395. {
  396. if (counter < min)
  397. {
  398. cm++;
  399. counter++;
  400. }
  401. else if (counter >= min && counter != max)
  402. {
  403. cm--;
  404. counter++;
  405. }
  406. else if (counter == max)
  407. {
  408. counter = 0;
  409. }
  410. }
  411. void health(char level[][200], int&rm, int&cm, int&cc)
  412. {
  413. if (cc == 0)
  414. {
  415. level[rm - 1][cm + 1] = 03;
  416. level[rm - 1][cm + 2] = 03;
  417. level[rm - 1][cm + 3] = 03;
  418. }
  419. if (cc == 1)
  420. {
  421. level[rm - 1][cm + 2] = 03;
  422. level[rm - 1][cm + 3] = 03;
  423. }
  424. if (cc == 2)
  425. {
  426. level[rm - 1][cm + 3] = 03;
  427. }
  428. if (cc == 3)
  429. {
  430. deathtrigger = 1;
  431. }
  432. }
  433. void damage(char level[][200], int&rm, int&cm, int&cc)
  434. {
  435. if (level[rm][cm - 1] == '~' || level[rm][cm + 5] == '~')
  436. {
  437. cc++;
  438. }
  439. }
  440. // / int count; /
  441. // /*if (view[rm][cm+1]!=' ')
  442. //
  443. // }
  444. // else
  445. // {
  446. // cm++;
  447. // }
  448. // if (choice == 't' || choice == 'T')
  449. // {
  450. // if (view[rm - 1][cm] != ' ')
  451. // {
  452. // }
  453. // else
  454. // {
  455. // rm--;
  456. // }
  457. // }
  458. // if (choice == 'g' || choice == 'G')
  459. // {
  460. // if (view[rm + 1][cm] != ' ')
  461. //
  462. // }
  463. // else
  464. // {
  465. // rm++;
  466. // }
  467. // }
  468. // if (choice == 'f' || choice == 'F')
  469. // {
  470. // if (view[rm][cm - 1] != ' ')
  471. // {
  472. // }
  473. // else
  474. // {
  475. // cm--;
  476. // }
  477. // }
  478. // if (choice == 'h' || choice == 'H')
  479. // {
  480. // if (view[rm][cm + 6] != ' ')
  481. // {
  482. // }
  483. // else
  484. // {
  485. // cm++;
  486. // }*/
  487. // /
  488. //} /
  489.  
  490. };
  491. //function responsible for the controls (below)
  492. class eleele
  493. {
  494. public:
  495. int min, max;
  496. int rele, cele;
  497. int count;
  498. void setele(char level[][200], char view[][80], int&rhero, int&chero, int&rele, int&cele, elevator e)
  499. {
  500. level[rele][cele] = e.ele[0];
  501. level[rele][cele + 1] = e.ele[1];
  502. level[rele][cele + 2] = e.ele[2];
  503. level[rele][cele + 3] = e.ele[3];
  504. level[rele][cele + 4] = e.ele[4];
  505. level[rele][cele + 5] = e.ele[5];
  506. }
  507. void moveele(char level[][200], char view[][80], int&rhero, int&chero, int&rele, int&cele, int&count, int&min, int&max)
  508. {
  509. if (count < min)
  510. {
  511. rele--;
  512. count++;
  513. }
  514. else if (count >= min && count != max)
  515. {
  516. rele++;
  517. count++;
  518. }
  519. else if (count == max)
  520. {
  521. count = 0;
  522. }
  523. }
  524. void heroelemove(char level[][200], char view[][80], int &rhero, int &chero, int &count, int&min)
  525. {
  526. if (view[rhero + 1][chero] == '='&&view[rhero + 1][chero + 5] == '=' &&count < min)
  527. {
  528. rhero--;
  529. }
  530. else if (view[rhero + 1][chero] == '='&&view[rhero + 1][chero + 5] == '='&&count >= min && count == max)
  531. {
  532. rhero++;
  533. }
  534. }
  535. };
  536.  
  537. class Bullet
  538. {
  539. public:
  540. int bhn = 0, bhd = 0, bhd2 = 0, bhs = 0, bhs2 = 0;
  541. int brp = 0, bcp = 0, firetrigger = 0, damage = 0;
  542. int speed = 1, damage_multiplier = 1;
  543. char Bsprite = '~', orientation = 'pe';
  544. int limiterb = 1;
  545.  
  546. void playerattack(char game[][200], player &x, enemy& ea, int le)
  547. {
  548.  
  549. //EnemyNPC
  550. if (bcp == (ea.renm - 1) && brp == (ea.renm + 6))
  551. {
  552. ea.deathtrigger = 1;
  553. firetrigger = 2;
  554. }
  555. //Doggie
  556. /*if (bcp == (d[0].Dcp - 2) && brp == (d[0].Drp))
  557. {
  558. firetrigger = 2;
  559. d[0].terminate = 1;
  560. }
  561. if (bcp == (d[1].Dcp - 2) && brp == (d[1].Drp))
  562. {
  563. firetrigger = 2;
  564. d[1].terminate = 1;
  565. }*/
  566. //Slime
  567. /*if (bcp == (s[0].cp - 2) && brp == (s[0].rp + 1))
  568. {
  569. firetrigger = 2;
  570. s[0].terminate = 1;
  571. }
  572.  
  573. if (bcp == (s[1].cp - 2) && brp == (s[1].rp))
  574. {
  575. s[1].terminate = 1;
  576. firetrigger = 2;
  577. }*/
  578.  
  579.  
  580. if (firetrigger == 1)
  581. {
  582. if (game[brp][bcp + 1] != le && game[brp][bcp - 1] != le)
  583. {
  584. if (orientation != 0)
  585. {
  586. bcp++;
  587. }
  588. else
  589. {
  590. bcp--;
  591. }
  592. }
  593. else
  594. {
  595. firetrigger = 2;
  596. }
  597. }
  598. }
  599. void setb(char game[][200])
  600. {
  601. game[brp][bcp] = Bsprite;
  602. }
  603.  
  604. };
  605.  
  606. void movehero(int&rhero, int&chero, char choice, char view[][80], char &orientation, player &x, char level[][200], int&bulletpressed, int&flag, Bullet b[])
  607. {
  608. /*/ orientation = 'po'; /*/
  609. if (choice == 'w' || choice == 'W')
  610. {
  611. if (x.gravityexists == 0)
  612. {
  613.  
  614. x.jumppressed = 1;
  615.  
  616. }
  617. else
  618. {
  619. x.jumppressed = 0;
  620. }
  621. }
  622. if (choice == 'a' || choice == 'A')
  623. {
  624. if (level[rhero][chero - 2] != ' ')
  625. {
  626.  
  627.  
  628. }
  629. else
  630. {
  631. /*/ chero - x.lvldir2; /*/
  632. orientation = 'l';
  633. if (x.lvldir >= 501)
  634. {
  635. /*/ chero--, /*/ x.lvldir = 0;
  636. x.lvldir2++;
  637. }
  638. else if (x.lvldir != 0)
  639. {
  640. x.lvldir--;
  641. }
  642. }
  643. }
  644. if (choice == 'd' || choice == 'D')
  645. {
  646. if (level[rhero][chero + 8] != ' ')
  647. {
  648.  
  649. }
  650. else
  651. {
  652. /*/ chero += x.lvldir2; /*/
  653. orientation = 'r';
  654. if (x.lvldir < 501)
  655. {
  656. x.lvldir++;
  657. }
  658. else
  659. {
  660. /*/ chero++, /*/ x.lvldir = 1;
  661. }
  662. }
  663. }
  664. if (choice == 'c' || choice == 'C')
  665. {
  666. for (int j = 0; j < b[0].limiterb; j++)
  667. {
  668. if (b[j].firetrigger == 0)
  669. {
  670. b[j].orientation = orientation;
  671. if (orientation == 'r')
  672. {
  673. b[j].bcp = rhero + 6; b[j].brp = (rhero + 2);
  674. }
  675. else
  676. {
  677. b[j].bcp = chero - 4, b[j].brp = rhero + 2;
  678. }
  679. b[j].firetrigger = 1;
  680. }
  681. }
  682. b[0].limiterb++;
  683. }
  684.  
  685. }
  686. //elevator (below)
  687. //function used for clearing the map (not yet implemented correctly (below)
  688. void clearmap(char view[][80])
  689. {
  690. for (int r = 0; r < 20; r++)
  691. {
  692. for (int c = 0; c < 80; c++)
  693. {
  694. view[r][c] = ' ';
  695. }
  696. }
  697. }
  698. void jump(player &x, char view[][80], int&rhero, int&chero)
  699. {
  700. if (view[rhero - 1][chero] == ' ' /*|| view[rhero - 1][chero] == '='*/ && view[rhero - 1][chero + 5] == ' ' /*|| view[rhero - 1][chero + 5] == '='*/)
  701. {
  702. if (x.jumppressed == 1)
  703. {
  704. x.jump += 2;
  705. if (x.jump == 2)
  706. {
  707. rhero--;
  708. }
  709. if (x.jump == 4)
  710. {
  711. rhero--;
  712. }
  713. if (x.jump == 6)
  714. {
  715. rhero--;
  716. }
  717. if (x.jump == 8)
  718. {
  719. rhero--;
  720. /*/ x.jumppressed = 0; /*/
  721.  
  722. }
  723. else if (x.jump > 8)
  724. {
  725. x.jumppressed = 0;
  726. x.gravityexists = 1;
  727. }
  728. }
  729. }
  730. else
  731. {
  732. x.jumppressed == 0;
  733. x.gravityexists = 1;
  734. }
  735. if (x.gravityexists == 1 && view[rhero + 1][chero] == ' '&& view[rhero + 1][chero + 5] == ' ')
  736. {
  737. rhero++;
  738. if (view[rhero + 1][chero] != ' ' || view[rhero + 1][chero + 5] != ' ')
  739. {
  740. x.jump = 0;
  741. }
  742. }
  743. else if (view[rhero + 1][chero] != ' ' || view[rhero + 1][chero + 5] != ' ')
  744. {
  745. x.gravityexists = 0;
  746. }
  747. if (x.jumppressed == 0 && view[rhero + 1][chero] == ' '&& view[rhero + 1][chero + 5] == ' '&& view[rhero + 1][chero] != '='&& view[rhero + 1][chero + 5] != '=')
  748. {
  749. rhero++;
  750. }
  751. }
  752.  
  753.  
  754.  
  755. int main()
  756. {
  757. int counter = 0, countee = 5, bulletpressed = 0, countree = 0, flag = 0;
  758. char /*/ the view that appears on the screen /*/ view[24][80]
  759. /*/ the whole level /*/, level[24][200],
  760. orientation = 'pepe', u = 205, d = 205, l = 186, r = 186;
  761. int /*/ the starting position of the hero /*/ rhero = 22, chero = 2;
  762. Bullet b[100];
  763.  
  764. char /* the button pressed by the player*/ choice;
  765. int rone = 16, cone = 55;
  766. int rtwo = 8, ctwo = 75;
  767. int rthree = 8, cthree = 95;
  768. player x;
  769. elevator e;
  770. eleele ee;
  771. eleele ea;
  772. enemy en, em, ep, pp;
  773. /*/ b.rbull = rhero; /*/
  774.  
  775. x.hero[0] = '(';
  776. x.hero[1] = ' ';
  777. x.hero[2] = 248;
  778. x.hero[3] = '_';
  779. x.hero[4] = 248;
  780. x.hero[5] = ')';
  781.  
  782. ee.max = 14;
  783. ee.min = 7;
  784. ee.rele = 23;
  785. ee.cele = 48;
  786. ee.count = 0;
  787.  
  788. ea.max = 14;
  789. ea.min = 7;
  790. ea.rele = 17;
  791. ea.cele = 66;
  792. ea.count = 0;
  793.  
  794. en.one[0] = '(';
  795. en.one[1] = ' ';
  796. en.one[2] = 36;
  797. en.one[3] = '_';
  798. en.one[4] = 36;
  799. en.one[5] = ')';
  800. en.renm = 16;
  801. en.cenm = 36;
  802. en.maxen = 10;
  803. en.minen = 5;
  804. en.counter = 0;
  805. en.cc = 0;
  806. en.deathtrigger = 0;
  807.  
  808. em.two[0] = '(';
  809. em.two[1] = ' ';
  810. em.two[2] = 64;
  811. em.two[3] = '_';
  812. em.two[4] = 64;
  813. em.two[5] = ')';
  814. em.renm = 8;
  815. em.cenm = 92;
  816. em.maxen = 16;
  817. em.minen = 8;
  818. em.counter = 0;
  819. em.cc = 0;
  820. em.deathtrigger = 0;
  821.  
  822. ep.three[0] = '(';
  823. ep.three[1] = ' ';
  824. ep.three[2] = 43;
  825. ep.three[3] = '_';
  826. ep.three[4] = 43;
  827. ep.three[5] = ')';
  828. ep.renm = 8;
  829. ep.cenm = 76;
  830. ep.maxen = 10;
  831. ep.minen = 5;
  832. ep.counter = 0;
  833. ep.cc = 0;
  834. ep.deathtrigger = 0;
  835.  
  836. pp.renm = 7;
  837. pp.cenm = 171;
  838. pp.maxen = 10;
  839. pp.minen = 5;
  840. pp.counter = 0;
  841. pp.cc = 0;
  842. pp.deathtrigger = 0;
  843.  
  844. x.gravityexists = 0;
  845. x.jump = 0;
  846. x.lvldir = 8;
  847. x.lvldir2 = 0;
  848.  
  849. /* clearmap(view); */
  850. fillmat(view, level, x);
  851. setherointhemat(view, level, rhero, chero, x, orientation);
  852. en.setenemyone(level, en.renm, en.cenm, en.deathtrigger);
  853. disp(view, level);
  854. for (;;)
  855. {
  856. for (;/* !_kbhit means as long as the keyboard isn't pressed*/ !_kbhit();)
  857. {
  858.  
  859. fillborders(level, x);
  860.  
  861. ee.setele(level, view, rhero, chero, ee.rele, ee.cele, e);
  862. ee.heroelemove(level, view, rhero, chero, ee.count, ee.min);
  863. ee.moveele(level, view, rhero, chero, ee.rele, ee.cele, ee.count, ee.min, ee.max);
  864.  
  865.  
  866. ea.setele(level, view, rhero, chero, ea.rele, ea.cele, e);
  867. ea.heroelemove(level, view, rhero, chero, ea.count, ea.min);
  868. ea.moveele(level, view, rhero, chero, ea.rele, ea.cele, ea.count, ea.min, ea.max);
  869.  
  870. /*MoveBullets(level, rhero, chero, bulletlevel,orientation);
  871. DrawBullet(level, rhero, bulletlevel);*/
  872.  
  873.  
  874. fillmat(view, level, x);
  875.  
  876. jump(x, view, rhero, chero);
  877.  
  878. setherointhemat(view, level, rhero, chero, x, orientation);
  879. for (int j = 0; j < b[0].limiterb; j++)
  880. {
  881. b[j].playerattack(level, x, en, l);
  882. b[j].setb(level);
  883. }
  884. en.moveenemy(en.renm, en.cenm, level, counter, en.maxen, en.minen);
  885. en.setenemyone(level, en.renm, en.cenm, en.deathtrigger);
  886. en.health(level, en.renm, en.cenm, en.cc);
  887. en.damage(level, en.renm, en.cenm, en.cc);
  888.  
  889. em.moveenemy(em.renm, em.cenm, level, em.counter, em.maxen, em.minen);
  890. em.setenemytwo(level, em.renm, em.cenm, em.deathtrigger);
  891. em.health(level, em.renm, em.cenm, em.cc);
  892. em.damage(level, em.renm, em.cenm, em.cc);
  893.  
  894. ep.moveenemy(ep.renm, ep.cenm, level, ep.counter, ep.maxen, ep.minen);
  895. ep.setenemythree(level, ep.renm, ep.cenm, ep.deathtrigger);
  896. ep.health(level, ep.renm, ep.cenm, ep.cc);
  897. ep.damage(level, ep.renm, ep.cenm, ep.cc);
  898.  
  899. pp.moveenemy(pp.renm, pp.cenm, level, pp.counter, pp.maxen, pp.minen);
  900. pp.setenemy(level, pp.renm, pp.cenm, pp.deathtrigger);
  901.  
  902. disp(view, level);
  903. }
  904.  
  905. choice = /* when the for loop above ends, this function get's the key that was pressed and puts it inside the variable choice*/ _getch();
  906. movehero(rhero, chero, choice, view, orientation, x, level, bulletpressed, flag, b);
  907. /* SetBullet(view,level, rhero, chero, choice, bulletlevel, flag,orientation); */
  908. jump(x, view, rhero, chero);
  909. fillborders(level, x);
  910.  
  911. ee.setele(level, view, rhero, chero, ee.rele, ee.cele, e);
  912. ee.heroelemove(level, view, rhero, chero, ee.count, ee.min);
  913. ee.moveele(level, view, rhero, chero, ee.rele, ee.cele, ee.count, ee.min, ee.max);
  914.  
  915. ea.setele(level, view, rhero, chero, ea.rele, ea.cele, e);
  916. ea.heroelemove(level, view, rhero, chero, ea.count, ea.min);
  917. ea.moveele(level, view, rhero, chero, ea.rele, ea.cele, ea.count, ea.min, ea.max);
  918.  
  919. /*DrawBullet(level, rhero, bulletlevel);*/
  920. /*disp(view, level);*/
  921. fillmat(view, level, x);
  922. setherointhemat(view, level, rhero, chero, x, orientation);
  923.  
  924. en.moveenemy(en.renm, en.cenm, level, counter, en.maxen, en.minen);
  925. en.setenemyone(level, en.renm, en.cenm, en.deathtrigger);
  926. en.health(level, en.renm, en.cenm, en.cc);
  927. en.damage(level, en.renm, en.cenm, en.cc);
  928.  
  929. em.moveenemy(em.renm, em.cenm, level, em.counter, em.maxen, em.minen);
  930. em.setenemytwo(level, em.renm, em.cenm, em.deathtrigger);
  931. em.health(level, em.renm, em.cenm, em.cc);
  932. em.damage(level, em.renm, em.cenm, em.cc);
  933.  
  934. ep.moveenemy(ep.renm, ep.cenm, level, ep.counter, ep.maxen, ep.minen);
  935. ep.setenemythree(level, ep.renm, ep.cenm, ep.deathtrigger);
  936. ep.health(level, ep.renm, ep.cenm, ep.cc);
  937. ep.damage(level, ep.renm, ep.cenm, ep.cc);
  938.  
  939. pp.moveenemy(pp.renm, pp.cenm, level, pp.counter, pp.maxen, pp.minen);
  940. pp.setenemy(level, pp.renm, pp.cenm, pp.deathtrigger);
  941.  
  942. /*MoveBullets(level, rhero, chero, bulletlevel,orientation);*/
  943. disp(view, level);
  944. }
  945. /*for (;;)
  946. {
  947. for (int e=15;e<5;e++)
  948. {
  949. if(;;)
  950. }
  951. }*/
  952.  
  953. system("pause");
  954. return 0;
  955. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement