Advertisement
Guest User

Untitled

a guest
Feb 11th, 2016
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 27.97 KB | None | 0 0
  1. /*
  2. author: S. M. Shahriar Nirjon
  3. last modified: August 8, 2008
  4. */
  5. # include "iGraphics.h"
  6. #include<stdio.h>
  7.  
  8. int i,j,k,t,p,x;
  9. double fireData[1000][10], enemyData[1000][11], collisionData[50][5], explosionData[50][20];
  10. double backData[140] = { 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 260, 270, 280, 290, 300, 310, 320, 330, 340, 350, 360, 370, 380, 390, 400, 410, 420, 430, 440, 450, 460, 470, 480, 490, 500, 510, 520, 530, 540, 550, 560, 570, 580, 590, 600, 610, 620, 630, 640, 650, 660, 670, 680, 690, 700, 710, 720, 730, 740, 750, 760, 770, 780, 790, 800, 810, 820, 830, 840, 850, 860, 870, 880, 890, 900, 910, 920, 930, 940, 950, 960, 970, 980, 990, 1000, 1010, 1020, 1030, 1040, 1050, 1060, 1070, 1080, 1090, 1100, 1110, 1120, 1130, 1140, 1150, 1160, 1170, 1180, 1190, 1200, 1210, 1220, 1230, 1240, 1250, 1260, 1270, 1280, 1290, 1300, 1310, 1320, 1330, 1340, 1350 };
  11. double xco = 50, yco = 300;
  12. double monitorX = 1360, monitorY = monitorX*0.51;
  13. int direction = 1;
  14. double heliX = 500, heliY = 500, targetX=500, targetY=200, heliShotX, heliShotY, add;
  15. int flag = 0;
  16. int score = 0;
  17. char a[1000];
  18. int counted = 0;
  19. int s;
  20. int v;
  21. int lines = 2;
  22. int attack=0;
  23.  
  24. char ch;
  25. int nol = 0;
  26.  
  27. char ch1;
  28. int nol1 = 0;
  29.  
  30. FILE *fp;
  31. FILE *fp1;
  32. FILE *fp2;
  33.  
  34. errno_t err;
  35. //double x = 50, y = 50, a = 100, b = 100, x1, yh1, a1, b1;
  36.  
  37. char str[100], str2[100];
  38. int len;
  39. int mode;
  40.  
  41. struct player{
  42. char name[100];
  43. int point;
  44. };
  45. struct player pl[1000];
  46. struct player temp;
  47.  
  48.  
  49. void drawTextBox()
  50. {
  51. iText(555, 500, "Please enter your name");
  52. iSetColor(150, 150, 150);
  53. iRectangle(500, 450, 250, 30);
  54. }
  55.  
  56. void backgroundMove()
  57. {
  58. for (i = 0; i < 136; i++)
  59. {
  60. backData[i] -= 10;
  61. if (backData[i] < 0)
  62. backData[i] = 1350;
  63. }
  64.  
  65. }
  66.  
  67. void explosionActivate(double x, double y)
  68. {
  69. for (i = 0; i < 50; i++)
  70. {
  71. if (explosionData[i][0] != 1)
  72. {
  73. //printf("explosion Activated\n");
  74. explosionData[i][0] = 1;
  75. explosionData[i][1] = x;
  76. explosionData[i][2] = y;
  77. explosionData[i][3] = 1;
  78. break;
  79. }
  80. }
  81. }
  82.  
  83. void explosionPlay()
  84. {
  85. for (i = 0; i < 50; i++)
  86. {
  87. if (explosionData[i][0] == 1)
  88. {
  89. for (j = 3; j < 16; j++)
  90. {
  91. if (explosionData[i][j] == 1)
  92. {
  93. explosionData[i][j] = 0;
  94. explosionData[i][j + 1] = 1;
  95. //printf("explosion play incrementing\n");
  96. break;
  97. }
  98. }
  99. if (j == 16)
  100. explosionData[i][0] = 0;
  101. }
  102. }
  103. }
  104.  
  105. void fireActivate(int mx,int my)
  106. {
  107. for (i = 0; i < 1000; i++)
  108. {
  109. if (fireData[i][0] != 1)
  110. {
  111. heliShotX = heliX + 50;
  112. heliShotY = heliY + 15;
  113. fireData[i][0] = 1;
  114. fireData[i][1] = 25 / (sqrt(1 + ((my - heliShotY) / (mx - heliShotX))*((my - heliShotY) / (mx - heliShotX))));
  115. fireData[i][6] = (25 * ((my - heliShotY) / (mx - heliShotX))) / (sqrt(1 + ((my - heliShotY) / (mx - heliShotX))*((my - heliShotY) / (mx - heliShotX))));
  116. fireData[i][2] = heliShotX;
  117. fireData[i][3] = heliShotY;
  118. if (mx<heliShotX && my>heliShotY)
  119. {
  120. fireData[i][4] = heliShotX - fireData[i][1];
  121. fireData[i][5] = heliShotY - fireData[i][6];
  122. fireData[i][7] = 2;
  123. }
  124. else if (mx < heliShotX&&my < heliShotY)
  125. {
  126. fireData[i][4] = heliShotX - fireData[i][1];
  127. fireData[i][5] = heliShotY - fireData[i][6];
  128. fireData[i][7] = 3;
  129. }
  130. else if (mx > heliShotX && my < heliShotY)
  131. {
  132. fireData[i][4] = heliShotX + fireData[i][1];
  133. fireData[i][5] = heliShotY + fireData[i][6];
  134. fireData[i][7] = 4;
  135. }
  136. else
  137. {
  138. fireData[i][4] = heliShotX + fireData[i][1];
  139. fireData[i][5] = heliShotY + fireData[i][6];
  140. fireData[i][7] = 1;
  141. }
  142. break;
  143. }
  144. }
  145. }
  146.  
  147. void fireMove()
  148. {
  149. for (i = 0; i < 1000; i++)
  150. {
  151. if (fireData[i][0] == 1)
  152. {
  153. if (fireData[i][7] == 1)
  154. {
  155. fireData[i][2] += fireData[i][1];
  156. fireData[i][3] += fireData[i][6];
  157. fireData[i][4] += fireData[i][1];
  158. fireData[i][5] += fireData[i][6];
  159. }
  160. else if (fireData[i][7] == 2)
  161. {
  162. fireData[i][2] -= fireData[i][1];
  163. fireData[i][3] -= fireData[i][6];
  164. fireData[i][4] -= fireData[i][1];
  165. fireData[i][5] -= fireData[i][6];
  166. }
  167. else if (fireData[i][7] == 3)
  168. {
  169. fireData[i][2] -= fireData[i][1];
  170. fireData[i][3] -= fireData[i][6];
  171. fireData[i][4] -= fireData[i][1];
  172. fireData[i][5] -= fireData[i][6];
  173. }
  174. else
  175. {
  176. fireData[i][2] += fireData[i][1];
  177. fireData[i][3] += fireData[i][6];
  178. fireData[i][4] += fireData[i][1];
  179. fireData[i][5] += fireData[i][6];
  180. }
  181.  
  182. }
  183. if (fireData[i][2]>monitorX || fireData[i][3] > monitorY)
  184. {
  185. fireData[i][0] = 0;
  186. }
  187. }
  188. }
  189.  
  190. void enemyActivate()
  191. {
  192. for (i = 0; i < 1000; i++)
  193. {
  194. if (enemyData[i][0] != 1)
  195. {
  196. enemyData[i][0] = 1;
  197. enemyData[i][1] = monitorX;
  198. enemyData[i][2] = rand() % (int)monitorY;
  199. enemyData[i][10] = 1;
  200. // printf("%f\n", enemyData[i][2]);
  201. break;
  202. }
  203. }
  204. }
  205.  
  206. void enemyMove()
  207. {
  208. iShowBMP(100, 100, "heli.bmp");
  209. for (i = 0; i < 100; i++)
  210. {
  211. if (enemyData[i][0] == 1)
  212. {
  213. enemyData[i][1] -= 15;
  214. }
  215. if (enemyData[i][1] < 0)
  216. enemyData[i][0] = 0;
  217. }
  218. }
  219.  
  220.  
  221.  
  222.  
  223. void collision()
  224. {
  225. for (i = 0; i < 50; i++)
  226. {
  227. if (fireData[i][0] == 1)
  228. {
  229.  
  230. for (j = 0; j < 50; j++)
  231. {
  232. if (enemyData[j][0] == 1)
  233. {
  234. if (fireData[i][2] > enemyData[j][1] && fireData[i][3] > enemyData[j][2] && fireData[i][2] < enemyData[j][1] + 175 && fireData[i][3] < enemyData[j][2] + 38 + 16)
  235. //if (abs((fireData[i][2] + 5) - (enemyData[j][1] + 25)) < 15 && abs((fireData[i][3] + 5) - (enemyData[j][2] + 15)) < 15)
  236. {
  237.  
  238. fireData[i][0] = 0;
  239. enemyData[j][0] = 0;
  240. for (k = 0; k < 50; k++)
  241. {
  242. if (collisionData[k][0] != 1)
  243. {
  244. collisionData[k][0] = 1;
  245. collisionData[k][1] = enemyData[j][1];
  246. collisionData[k][2] = enemyData[j][2];
  247. score++;
  248. //printf("collisionData assigned!!\n");
  249. explosionActivate(collisionData[k][1], collisionData[k][2]);
  250. // flag = 1;
  251. break;
  252. }
  253. }
  254.  
  255. }
  256. }
  257.  
  258. }
  259. }
  260. }
  261.  
  262.  
  263. for (i = 0; i < 50; i++)
  264. {
  265. if (enemyData[i][0] == 1)
  266. {
  267. if (abs(enemyData[i][1] - heliX) < 200 && abs(enemyData[i][2] - heliY) < 70)
  268. {
  269. if (enemyData[i][2] > heliY)
  270. {
  271. if (enemyData[i][2] - heliY < 70)
  272. {
  273. enemyData[i][0] = 0;
  274. attack++;
  275. printf("%d", attack);
  276. for (k = 0; k < 50; k++)
  277. {
  278. if (collisionData[k][0] != 1)
  279. {
  280. collisionData[k][0] = 1;
  281. collisionData[k][1] = enemyData[i][1];
  282. collisionData[k][2] = enemyData[i][2];
  283. //printf("collisionData assigned!!\n");
  284. explosionActivate(collisionData[k][1], collisionData[k][2]);
  285. break;
  286.  
  287. }
  288. }
  289. }
  290. }
  291. else
  292. {
  293. if (heliY - enemyData[i][2] < 40)
  294. {
  295. enemyData[i][0] = 0;
  296. attack++;
  297. printf("%d", attack);
  298. for (k = 0; k < 50; k++)
  299. {
  300. if (collisionData[k][0] != 1)
  301. {
  302. collisionData[k][0] = 1;
  303. collisionData[k][1] = enemyData[i][1];
  304. collisionData[k][2] = enemyData[i][2];
  305. //printf("collisionData assigned!!\n");
  306. explosionActivate(collisionData[k][1], collisionData[k][2]);
  307. break;
  308.  
  309. }
  310. }
  311. }
  312. }
  313.  
  314. }
  315. }
  316. }
  317. }
  318.  
  319.  
  320.  
  321. void input(){
  322. //errno_t err;
  323. fopen_s(&fp1, "string.txt", "a");
  324. if (fp1 != NULL){
  325. printf("String file created");
  326. }
  327. else{
  328. printf("error occured");
  329. }
  330. fclose(fp1);
  331.  
  332. fopen_s(&fp2, "score.txt", "a");
  333.  
  334. if (fp != NULL){
  335. printf("score file created");
  336. }
  337. else{
  338. printf("error occured");
  339. }
  340. fclose(fp2);
  341. }
  342.  
  343.  
  344. /*
  345. function iDraw() is called again and again by the system.
  346. */
  347.  
  348.  
  349.  
  350.  
  351.  
  352. void scoreProp(){
  353.  
  354. int tempu;
  355. tempu= score;
  356. fopen_s(&fp, "score.txt", "a");
  357. fprintf(fp,"%d", tempu);
  358. fprintf(fp, "\n");
  359. fclose(fp);
  360.  
  361.  
  362. }
  363.  
  364. void iDraw()
  365. {
  366. //place your drawing codes here
  367.  
  368. //iClear();
  369. //iSetColor(255, 0, 0);
  370.  
  371. if (flag == 0){
  372.  
  373. iClear();
  374.  
  375. //iSetColor(255, 0, 0);
  376.  
  377. iSetColor(14, 155, 201);
  378. iFilledRectangle(600, 400, 200, 50);
  379. iSetColor(255, 255, 255);
  380. iText(650, 415, "Play Game", GLUT_BITMAP_TIMES_ROMAN_24);
  381. iSetColor(14, 155, 201);
  382. iFilledRectangle(600, 330, 200, 50);
  383. iSetColor(255, 255, 255);
  384. iText(650, 345, "Score", GLUT_BITMAP_TIMES_ROMAN_24);
  385.  
  386. iSetColor(14, 155, 201);
  387. iFilledRectangle(600, 260, 200, 50);
  388. iSetColor(255, 255, 255);
  389. iText(650, 275, "Instruction", GLUT_BITMAP_TIMES_ROMAN_24);
  390.  
  391. }
  392. //mode = 0;
  393. if (flag == 4){
  394. iClear();
  395. drawTextBox();
  396. mode = 1;
  397. if (mode == 1)
  398. {
  399.  
  400. iSetColor(255, 255, 255);
  401. iText(555, 460, str);
  402. }
  403.  
  404.  
  405. //flag = 1;
  406. }
  407. //mode = 0;
  408. if (flag == 1){
  409. iClear();
  410. iSetColor(255, 0, 0);
  411. iShowBMP(heliX, heliY, "heli.bmp");
  412. iShowBMP(backData[0], 0, "back_01.bmp");
  413. iShowBMP(backData[1], 0, "back_02.bmp");
  414. iShowBMP(backData[2], 0, "back_03.bmp");
  415. iShowBMP(backData[3], 0, "back_04.bmp");
  416. iShowBMP(backData[4], 0, "back_05.bmp");
  417. iShowBMP(backData[5], 0, "back_06.bmp");
  418. iShowBMP(backData[6], 0, "back_07.bmp");
  419. iShowBMP(backData[7], 0, "back_08.bmp");
  420. iShowBMP(backData[8], 0, "back_09.bmp");
  421. iShowBMP(backData[9], 0, "back_10.bmp");
  422. iShowBMP(backData[10], 0, "back_11.bmp");
  423. iShowBMP(backData[11], 0, "back_12.bmp");
  424. iShowBMP(backData[12], 0, "back_13.bmp");
  425. iShowBMP(backData[13], 0, "back_14.bmp");
  426. iShowBMP(backData[14], 0, "back_15.bmp");
  427. iShowBMP(backData[15], 0, "back_16.bmp");
  428. iShowBMP(backData[16], 0, "back_17.bmp");
  429. iShowBMP(backData[17], 0, "back_18.bmp");
  430. iShowBMP(backData[18], 0, "back_19.bmp");
  431. iShowBMP(backData[19], 0, "back_20.bmp");
  432. iShowBMP(backData[20], 0, "back_21.bmp");
  433. iShowBMP(backData[21], 0, "back_22.bmp");
  434. iShowBMP(backData[22], 0, "back_23.bmp");
  435. iShowBMP(backData[23], 0, "back_24.bmp");
  436. iShowBMP(backData[24], 0, "back_25.bmp");
  437. iShowBMP(backData[25], 0, "back_26.bmp");
  438. iShowBMP(backData[26], 0, "back_27.bmp");
  439. iShowBMP(backData[27], 0, "back_28.bmp");
  440. iShowBMP(backData[28], 0, "back_29.bmp");
  441. iShowBMP(backData[29], 0, "back_30.bmp");
  442. iShowBMP(backData[30], 0, "back_31.bmp");
  443. iShowBMP(backData[31], 0, "back_32.bmp");
  444. iShowBMP(backData[32], 0, "back_33.bmp");
  445. iShowBMP(backData[33], 0, "back_34.bmp");
  446. iShowBMP(backData[34], 0, "back_35.bmp");
  447. iShowBMP(backData[35], 0, "back_36.bmp");
  448. iShowBMP(backData[36], 0, "back_37.bmp");
  449. iShowBMP(backData[37], 0, "back_38.bmp");
  450. iShowBMP(backData[38], 0, "back_39.bmp");
  451. iShowBMP(backData[39], 0, "back_40.bmp");
  452. iShowBMP(backData[40], 0, "back_41.bmp");
  453. iShowBMP(backData[41], 0, "back_42.bmp");
  454. iShowBMP(backData[42], 0, "back_43.bmp");
  455. iShowBMP(backData[43], 0, "back_44.bmp");
  456. iShowBMP(backData[44], 0, "back_45.bmp");
  457. iShowBMP(backData[45], 0, "back_46.bmp");
  458. iShowBMP(backData[46], 0, "back_47.bmp");
  459. iShowBMP(backData[47], 0, "back_48.bmp");
  460. iShowBMP(backData[48], 0, "back_49.bmp");
  461. iShowBMP(backData[49], 0, "back_50.bmp");
  462. iShowBMP(backData[50], 0, "back_51.bmp");
  463. iShowBMP(backData[51], 0, "back_52.bmp");
  464. iShowBMP(backData[52], 0, "back_53.bmp");
  465. iShowBMP(backData[53], 0, "back_54.bmp");
  466. iShowBMP(backData[54], 0, "back_55.bmp");
  467. iShowBMP(backData[55], 0, "back_56.bmp");
  468. iShowBMP(backData[56], 0, "back_57.bmp");
  469. iShowBMP(backData[57], 0, "back_58.bmp");
  470. iShowBMP(backData[58], 0, "back_59.bmp");
  471. iShowBMP(backData[59], 0, "back_60.bmp");
  472. iShowBMP(backData[60], 0, "back_61.bmp");
  473. iShowBMP(backData[61], 0, "back_62.bmp");
  474. iShowBMP(backData[62], 0, "back_63.bmp");
  475. iShowBMP(backData[63], 0, "back_64.bmp");
  476. iShowBMP(backData[64], 0, "back_65.bmp");
  477. iShowBMP(backData[65], 0, "back_66.bmp");
  478. iShowBMP(backData[66], 0, "back_67.bmp");
  479. iShowBMP(backData[67], 0, "back_68.bmp");
  480. iShowBMP(backData[68], 0, "back_69.bmp");
  481. iShowBMP(backData[69], 0, "back_70.bmp");
  482. iShowBMP(backData[70], 0, "back_71.bmp");
  483. iShowBMP(backData[71], 0, "back_72.bmp");
  484. iShowBMP(backData[72], 0, "back_73.bmp");
  485. iShowBMP(backData[73], 0, "back_74.bmp");
  486. iShowBMP(backData[74], 0, "back_75.bmp");
  487. iShowBMP(backData[75], 0, "back_76.bmp");
  488. iShowBMP(backData[76], 0, "back_77.bmp");
  489. iShowBMP(backData[77], 0, "back_78.bmp");
  490. iShowBMP(backData[78], 0, "back_79.bmp");
  491. iShowBMP(backData[79], 0, "back_80.bmp");
  492. iShowBMP(backData[80], 0, "back_81.bmp");
  493. iShowBMP(backData[81], 0, "back_82.bmp");
  494. iShowBMP(backData[82], 0, "back_83.bmp");
  495. iShowBMP(backData[83], 0, "back_84.bmp");
  496. iShowBMP(backData[84], 0, "back_85.bmp");
  497. iShowBMP(backData[85], 0, "back_86.bmp");
  498. iShowBMP(backData[86], 0, "back_87.bmp");
  499. iShowBMP(backData[87], 0, "back_88.bmp");
  500. iShowBMP(backData[88], 0, "back_89.bmp");
  501. iShowBMP(backData[89], 0, "back_90.bmp");
  502. iShowBMP(backData[90], 0, "back_91.bmp");
  503. iShowBMP(backData[91], 0, "back_92.bmp");
  504. iShowBMP(backData[92], 0, "back_93.bmp");
  505. iShowBMP(backData[93], 0, "back_94.bmp");
  506. iShowBMP(backData[94], 0, "back_95.bmp");
  507. iShowBMP(backData[95], 0, "back_96.bmp");
  508. iShowBMP(backData[96], 0, "back_97.bmp");
  509. iShowBMP(backData[97], 0, "back_98.bmp");
  510. iShowBMP(backData[98], 0, "back_99.bmp");
  511. iShowBMP(backData[99], 0, "back_100.bmp");
  512. iShowBMP(backData[100], 0, "back_101.bmp");
  513. iShowBMP(backData[101], 0, "back_102.bmp");
  514. iShowBMP(backData[102], 0, "back_103.bmp");
  515. iShowBMP(backData[103], 0, "back_104.bmp");
  516. iShowBMP(backData[104], 0, "back_105.bmp");
  517. iShowBMP(backData[105], 0, "back_106.bmp");
  518. iShowBMP(backData[106], 0, "back_107.bmp");
  519. iShowBMP(backData[107], 0, "back_108.bmp");
  520. iShowBMP(backData[108], 0, "back_109.bmp");
  521. iShowBMP(backData[109], 0, "back_110.bmp");
  522. iShowBMP(backData[110], 0, "back_111.bmp");
  523. iShowBMP(backData[111], 0, "back_112.bmp");
  524. iShowBMP(backData[112], 0, "back_113.bmp");
  525. iShowBMP(backData[113], 0, "back_114.bmp");
  526. iShowBMP(backData[114], 0, "back_115.bmp");
  527. iShowBMP(backData[115], 0, "back_116.bmp");
  528. iShowBMP(backData[116], 0, "back_117.bmp");
  529. iShowBMP(backData[117], 0, "back_118.bmp");
  530. iShowBMP(backData[118], 0, "back_119.bmp");
  531. iShowBMP(backData[119], 0, "back_120.bmp");
  532. iShowBMP(backData[120], 0, "back_121.bmp");
  533. iShowBMP(backData[121], 0, "back_122.bmp");
  534. iShowBMP(backData[122], 0, "back_123.bmp");
  535. iShowBMP(backData[123], 0, "back_124.bmp");
  536. iShowBMP(backData[124], 0, "back_125.bmp");
  537. iShowBMP(backData[125], 0, "back_126.bmp");
  538. iShowBMP(backData[126], 0, "back_127.bmp");
  539. iShowBMP(backData[127], 0, "back_128.bmp");
  540. iShowBMP(backData[128], 0, "back_129.bmp");
  541. iShowBMP(backData[129], 0, "back_130.bmp");
  542. iShowBMP(backData[130], 0, "back_131.bmp");
  543. iShowBMP(backData[131], 0, "back_132.bmp");
  544. iShowBMP(backData[132], 0, "back_133.bmp");
  545. iShowBMP(backData[133], 0, "back_134.bmp");
  546. iShowBMP(backData[134], 0, "back_135.bmp");
  547. iShowBMP(backData[135], 0, "back_136.bmp");
  548.  
  549.  
  550. //iText(100, 100, str, GLUT_BITMAP_TIMES_ROMAN_10);
  551. iShowBMP2(heliX, heliY, "heli.bmp", 255);
  552.  
  553. if (x == 1)
  554. {
  555. iShowBMP2((heliX + 158) - 57, (heliY + 66), "heli_prop (1).bmp", 255);
  556. x = 2;
  557. }
  558. else if (x == 2)
  559. {
  560. iShowBMP2((heliX + 158) - 71, (heliY + 66), "heli_prop (2).bmp", 255);
  561. x = 3;
  562. }
  563. else
  564. {
  565. iShowBMP2((heliX + 158) - 80, (heliY + 66), "heli_prop (3).bmp", 255);
  566. x = 1;
  567. }
  568.  
  569.  
  570.  
  571.  
  572. for (i = 0; i < 1000; i++)
  573. {
  574. if (fireData[i][0] == 1)
  575. {
  576. //iLine(a[i][2], a[i][3], a[i][4], a[i][5]);
  577. iSetColor(255, 150, 0);
  578. iFilledCircle(fireData[i][2], fireData[i][3], 5);
  579. //iShowBMP2(fireData[i][2], fireData[i][3], "fire.bmp", 255);
  580.  
  581. }
  582. }
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590. for (i = 0; i < 100; i++)
  591. {
  592. if (enemyData[i][0] == 1)
  593. {
  594. iSetColor(0, 250, 200);
  595. //iFilledRectangle(enemyData[i][1], enemyData[i][2], 50, 30);
  596. iShowBMP2(enemyData[i][1], enemyData[i][2], "enemy.bmp", 255);
  597. if (enemyData[i][10] == 1)
  598. {
  599. iShowBMP2((enemyData[i][1] + 72) - 57, (enemyData[i][2] + 41), "enemy_prop_1.bmp", 255);
  600. enemyData[i][10] = 2;
  601. }
  602. else if (enemyData[i][10] == 2)
  603. {
  604. iShowBMP2((enemyData[i][1] + 72) - 71, (enemyData[i][2] + 41), "enemy_prop_2.bmp", 255);
  605. enemyData[i][10] = 3;
  606. }
  607. else
  608. {
  609. iShowBMP2((enemyData[i][1] + 72) - 80, (enemyData[i][2] + 41) - 1, "enemy_prop_3.bmp", 255);
  610. enemyData[i][10] = 1;
  611. }
  612. }
  613. }
  614.  
  615. for (i = 0; i < 50; i++)
  616. {
  617.  
  618. if (explosionData[i][0] == 1)
  619. {
  620. if (explosionData[i][3] == 1)
  621. {
  622. iShowBMP2(explosionData[i][1], explosionData[i][2], "explosion1_0003.bmp", 255);
  623. printf("inside explosion data check\n");
  624. }
  625. else if (explosionData[i][4] == 1)
  626. iShowBMP2(explosionData[i][1], explosionData[i][2], "explosion1_0006.bmp", 255);
  627.  
  628. else if (explosionData[i][5] == 1)
  629. iShowBMP2(explosionData[i][1], explosionData[i][2], "explosion1_0009.bmp", 255);
  630.  
  631. else if (explosionData[i][6] == 1)
  632. iShowBMP2(explosionData[i][1], explosionData[i][2], "explosion1_0012.bmp", 255);
  633.  
  634. else if (explosionData[i][7] == 1)
  635. iShowBMP2(explosionData[i][1], explosionData[i][2], "explosion1_0015.bmp", 255);
  636. /*
  637. else if (explosionData[i][8] == 1)
  638. iShowBMP2(explosionData[i][1], explosionData[i][2], "explosion1_0022.bmp", 255);
  639.  
  640. else if (explosionData[i][9] == 1)
  641. iShowBMP2(explosionData[i][1], explosionData[i][2], "explosion1_0033.bmp", 255);
  642.  
  643. else if (explosionData[i][10] == 1)
  644. iShowBMP2(explosionData[i][1], explosionData[i][2], "explosion1_0045.bmp", 255);
  645.  
  646. else if (explosionData[i][11] == 1)
  647. iShowBMP2(explosionData[i][1], explosionData[i][2], "explosion1_0056.bmp", 255);
  648.  
  649. else if (explosionData[i][12] == 1)
  650. iShowBMP2(explosionData[i][1], explosionData[i][2], "explosion1_0073.bmp", 255); */
  651.  
  652. }
  653. }
  654.  
  655.  
  656. //iText(xco, yco, "Aminur Rahman", GLUT_BITMAP_8_BY_13);
  657. //iLine(10,10,100,100);
  658. iSetColor(28,214,205);
  659. iText(1080, 650, "SCORE: ", GLUT_BITMAP_TIMES_ROMAN_24);
  660. sprintf_s(a, "%d", score);
  661. iText(1200, 650, a, GLUT_BITMAP_TIMES_ROMAN_24);
  662.  
  663.  
  664. }
  665.  
  666. if (attack==3){
  667. //int tempu[1000];
  668. //tempu[0] = score;
  669.  
  670. iClear();
  671.  
  672.  
  673. iSetColor(28, 214, 205);
  674. iText(580, 459, "GAME OVER", GLUT_BITMAP_HELVETICA_18);
  675. iText(580, 350, "SCORE: ", GLUT_BITMAP_TIMES_ROMAN_24);
  676. sprintf_s(a, "%d", score);
  677. iText(690, 350, a, GLUT_BITMAP_TIMES_ROMAN_24);
  678. if (counted==0){
  679. scoreProp();
  680. counted++;
  681. }
  682.  
  683.  
  684.  
  685. }
  686.  
  687.  
  688. }
  689.  
  690.  
  691.  
  692. /*
  693. function iMouseMove() is called when the user presses and drags the mouse.
  694. (mx, my) is the position where the mouse pointer is.
  695. */
  696. void iMouseMove(int mx, int my)
  697. {
  698. fireActivate(mx, my);
  699. //place your codes here
  700. }
  701.  
  702.  
  703. /*
  704. function iMouse() is called when the user presses/releases the mouse.
  705. (mx, my) is the position where the mouse pointer is.
  706. */
  707. void iMouse(int button, int state, int mx, int my)
  708. {
  709. if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
  710. {
  711. //printf("left button clicked at %d and %d\n", mx, my);
  712. //place your codes here
  713. fireActivate(mx, my);
  714. if ((mx >= 600 && mx <=800)&& (my>=400 && my<=450)&& flag==0){
  715. flag = 4;
  716. }
  717. if (mx >= 500 && mx <= 750 && my >= 450 && my <= 480 && mode == 0 && flag==4)
  718. {
  719. mode = 1;
  720. }
  721.  
  722.  
  723. }
  724. if (button == GLUT_RIGHT_BUTTON && state == GLUT_DOWN)
  725. {
  726.  
  727. // printf("Right button clicked at %d and %d\n", mx, my);
  728. //place your codes here
  729. }
  730. }
  731. /*iPassiveMouseMove is called to detect and use
  732. the mouse point without pressing any button */
  733.  
  734. void iPassiveMouseMove(int mx, int my)
  735. {
  736. //place your code here
  737. //fireActivate(mx, my);
  738.  
  739. //xco = mx;
  740. //yco = my;
  741. //if(mx== 2){} /*Something to do with mx*/
  742. //else if(my== 2){} /*Something to do with my*/
  743.  
  744. }
  745.  
  746. /*
  747. function iKeyboard() is called whenever the user hits a key in keyboard.
  748. key- holds the ASCII value of the key pressed.
  749. */
  750. void iKeyboard(unsigned char key)
  751. {
  752. if (key == 'w')
  753. {
  754. //do something with 'w'
  755. if (heliY < monitorY-30)
  756. heliY += 5;
  757. }
  758. else if (key == 'd')
  759. {
  760. if (heliX < monitorX-50)
  761. heliX += 15;
  762. }
  763. else if (key == 'a')
  764. {
  765. if (heliX > 0)
  766. heliX -= 15;
  767. }
  768. else if (key == 's')
  769. {
  770. if (heliY > 0)
  771. heliY -= 5;
  772. }
  773. //place your codes for other keys here
  774.  
  775. if (key == '\r'&& flag == 4){
  776. flag = 1;
  777. }
  778.  
  779. int r;
  780. if (mode == 1)
  781. {
  782. if (key == '\r')
  783. {
  784. mode = 0;
  785. strcpy_s(str2, str);
  786.  
  787. fopen_s(&fp, "string.txt", "a");
  788.  
  789. fprintf(fp, "%s\n", str2);
  790.  
  791. // printf("\n%s\n", str2);
  792.  
  793. for (r = 0; r < len; r++)
  794. str[r] = 0;
  795.  
  796. len = 0;
  797. //fprintf(fp, "%s", str2);
  798. fclose(fp);
  799. //mode = 1;
  800.  
  801.  
  802. }
  803. else
  804. {
  805. str[len] = key;
  806. len++;
  807. }
  808.  
  809.  
  810.  
  811. }
  812. }
  813.  
  814. /*
  815. function iSpecialKeyboard() is called whenver user hits special keys like-
  816. function keys, home, end, pg up, pg down, arraows etc. you have to use
  817. appropriate constants to detect them. A list is:
  818. GLUT_KEY_F1, GLUT_KEY_F2, GLUT_KEY_F3, GLUT_KEY_F4, GLUT_KEY_F5, GLUT_KEY_F6,
  819. GLUT_KEY_F7, GLUT_KEY_F8, GLUT_KEY_F9, GLUT_KEY_F10, GLUT_KEY_F11, GLUT_KEY_F12,
  820. GLUT_KEY_LEFT, GLUT_KEY_UP, GLUT_KEY_RIGHT, GLUT_KEY_DOWN, GLUT_KEY_PAGE UP,
  821. GLUT_KEY_PAGE DOWN, GLUT_KEY_HOME, GLUT_KEY_END, GLUT_KEY_INSERT
  822. */
  823. void iSpecialKeyboard(unsigned char key)
  824. {
  825.  
  826. if (key == GLUT_KEY_END)
  827. {
  828. flag = 5;
  829.  
  830. //exit(0);
  831. }
  832.  
  833. if (key == GLUT_KEY_F1){
  834. //flag = 4;
  835. }
  836. //place your codes for other keys here
  837. }
  838.  
  839. void stringCounter(){
  840.  
  841. fopen_s(&fp1, "string.txt", "r");
  842. printf("file is reading");
  843. while (1){
  844. ch = fgetc(fp1);
  845. if (ch == EOF)
  846. break;
  847.  
  848. if (ch == '\n')
  849. nol++;
  850.  
  851. }
  852. fclose(fp1);
  853.  
  854. }
  855.  
  856.  
  857.  
  858.  
  859.  
  860. void stringReader(){
  861. stringCounter();
  862. fopen_s(&fp1, "string.txt", "r");
  863. //printf("file is reading");
  864. if (fp1 == NULL){
  865. printf("error occured");
  866.  
  867. }
  868.  
  869. for (v = 0; v < nol; v++)
  870. {
  871. fgets(pl[v].name, 90, fp1);
  872. // printf("%s", pl[v].name);
  873. }
  874.  
  875.  
  876. fclose(fp1);
  877.  
  878. }
  879.  
  880. void intCounter(){
  881. fopen_s(&fp2, "score.txt", "r");
  882.  
  883. while (1){
  884. ch1 = fgetc(fp2);
  885. if (ch1 == EOF)
  886. break;
  887.  
  888. if (ch1 == '\n')
  889. nol1++;
  890.  
  891. }
  892. fclose(fp2);
  893.  
  894. }
  895. int q;
  896.  
  897. void intReader(){
  898. intCounter();
  899. fopen_s(&fp2, "score.txt", "r");
  900. if (fp2 == NULL){
  901. printf("error occured");
  902.  
  903. }
  904. for (q = 0; q < nol1; q++)
  905. {
  906. fscanf_s(fp2, "%d", &pl[q].point);
  907. // fgets(pl[v].name, 90, fp2);
  908. //printf("%d\n", pl[q].point);
  909. }
  910. fclose(fp2);
  911.  
  912.  
  913. }
  914.  
  915. void sort(){
  916. int h, g;
  917. intCounter();
  918. int y;
  919. for (g = 0; g < nol - 1; g++)
  920. {
  921. for (h = 0; h < nol - g - 1; h++)
  922. {
  923. if (pl[h].point < pl[h + 1].point)
  924. {
  925. temp = pl[h];
  926. pl[h] = pl[h + 1];
  927. pl[h + 1] = temp;
  928. }
  929. }
  930. }
  931. for (y = 0; y < nol; y++){
  932. printf("\n");
  933. printf("%s\t", pl[y].name);
  934. printf("%d", pl[y].point);
  935. }
  936. }
  937.  
  938.  
  939.  
  940. int main()
  941. {
  942. //place your own initialization codes here.
  943.  
  944. input();
  945. stringReader();
  946. intReader();
  947. sort();
  948. len = 0;
  949. mode = 0;
  950. str[0] = 0;
  951.  
  952.  
  953. iSetTimer(100, backgroundMove);
  954. iSetTimer(1, fireMove);
  955. iSetTimer(3000, enemyActivate);
  956. iSetTimer(100, enemyMove);
  957. iSetTimer(0, collision);
  958. iSetTimer(70, explosionPlay);
  959. iInitialize(monitorX, monitorY, "Software Developemnt-I");
  960. iDraw();
  961. //iClear();
  962.  
  963. return 0;
  964. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement