Advertisement
Guest User

Untitled

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