wall.java
上传用户:jhzhutan
上传日期:2021-03-28
资源大小:374k
文件大小:31k
源码类别:

射击游戏

开发平台:

Java

  1. import java.awt.*;
  2. public class wall implements Actor{
  3. private int xPos;
  4. private int yPos;
  5. private Rectangle[] border = new Rectangle[4];
  6. public boolean[] shape = new boolean[16];
  7. public boolean walldestoried;
  8. public boolean bulletdestoried;
  9. public ServerModel gameModel;
  10. public Image wall;
  11. public Rectangle generalBorder;
  12. public wall(int a, int b, ServerModel gameModel){
  13. xPos = a;
  14. yPos = b;
  15. this.gameModel = gameModel;
  16. wall = gameModel.textures[70];
  17. generalBorder = new Rectangle(xPos - 12, yPos - 12, 25, 25);
  18. border[0] = new Rectangle(xPos - 11, yPos - 11, 11, 11);
  19. border[1] = new Rectangle(xPos + 1, yPos - 11, 11, 11);
  20. border[2] = new Rectangle(xPos - 11, yPos + 1, 11, 11);
  21. border[3] = new Rectangle(xPos + 1, yPos + 1, 11, 11);
  22. }
  23. public wall(int a, int b, int orientation, ServerModel gameModel){
  24. xPos = a;
  25. yPos = b;
  26. this.gameModel = gameModel;
  27. wall = gameModel.textures[70];
  28. generalBorder = new Rectangle(xPos - 12, yPos - 12, 25, 25);
  29. if(orientation == 0){
  30. border[0] = new Rectangle(xPos - 11, yPos - 11, 11, 11);
  31. border[1] = new Rectangle(xPos + 1, yPos - 11, 11, 11);
  32. for(int i = 8; i < 12; i ++)
  33. shape[i] = true;
  34. for(int i = 12; i < 16; i ++)
  35. shape[i] = true;
  36. }
  37. if(orientation == 1){
  38. border[2] = new Rectangle(xPos - 11, yPos + 1, 11, 11);
  39. border[3] = new Rectangle(xPos + 1, yPos + 1, 11, 11);
  40. for(int i = 0; i < 4; i ++)
  41. shape[i] = true;
  42. for(int i = 4; i < 8; i ++)
  43. shape[i] = true;
  44. }
  45. if(orientation == 2){
  46. border[0] = new Rectangle(xPos - 11, yPos - 11, 11, 11);
  47. border[2] = new Rectangle(xPos - 11, yPos + 1, 11, 11);
  48. for(int i = 3; i <= 15; i+=4)
  49. shape[i] = true;
  50. for(int i = 2; i <= 14; i+=4)
  51. shape[i] = true;
  52. }
  53. if(orientation == 3){
  54. border[1] = new Rectangle(xPos + 1, yPos - 11, 11, 11);
  55. border[3] = new Rectangle(xPos + 1, yPos + 1, 11, 11);
  56. for(int i = 1; i <= 13; i+=4)
  57. shape[i] = true;
  58. for(int i = 0; i <= 12; i+=4)
  59. shape[i] = true;
  60. }
  61. }
  62. public void damageWall(Rectangle bullet, int bulletpower, int bulletdirection){
  63. bulletdestoried = false;
  64. if(bulletpower == 1){
  65. if(border[0] != null && border[1] != null && bulletdirection == 1){
  66. if(bullet.intersects(border[0]) && bullet.intersects(border[1])){
  67. if(shape[1] && shape[2]){
  68. for(int i = 4; i < 8; i ++)
  69. shape[i] = true;
  70. border[0] = null;
  71. border[1] = null;
  72. }
  73. if(!shape[1] || !shape[2]){
  74. for(int i = 0; i < 4; i ++)
  75. shape[i] = true;
  76. }
  77. bulletdestoried = true;
  78. }
  79. }
  80. if(border[0] != null && border[1] != null && bulletdirection == 0){
  81. if(bullet.intersects(border[0]) && bullet.intersects(border[1])){
  82. if(shape[5] && shape[6]){
  83. for(int i = 0; i < 4; i ++)
  84. shape[i] = true;
  85. border[0] = null;
  86. border[1] = null;
  87. }
  88. if(!shape[5] || !shape[6]){
  89. for(int i = 4; i < 8; i ++)
  90. shape[i] = true;
  91. }
  92. bulletdestoried = true;
  93. }
  94. }
  95. if(border[2] != null && border[3] != null && bulletdirection == 1){
  96. if(bullet.intersects(border[2]) && bullet.intersects(border[3])){
  97. if(shape[9] && shape[10]){
  98. for(int i = 12; i < 16; i ++)
  99. shape[i] = true;
  100. border[2] = null;
  101. border[3] = null;
  102. }
  103. if(!shape[9] || !shape[10]){
  104. for(int i = 8; i < 12; i ++)
  105. shape[i] = true;
  106. }
  107. bulletdestoried = true;
  108. }
  109. }
  110. if(border[2] != null && border[3] != null && bulletdirection == 0){
  111. if(bullet.intersects(border[2]) && bullet.intersects(border[3])){
  112. if(shape[13] && shape[14]){
  113. for(int i = 8; i < 12; i ++)
  114. shape[i] = true;
  115. border[2] = null;
  116. border[3] = null;
  117. }
  118. if(!shape[13] || !shape[14]){
  119. for(int i = 12; i < 16; i ++)
  120. shape[i] = true;
  121. }
  122. bulletdestoried = true;
  123. }
  124. }
  125. if(border[0] != null && border[2] != null && bulletdirection == 3){
  126. if(bullet.intersects(border[0]) && bullet.intersects(border[2])){
  127. if(shape[4] && shape[8]){
  128. for(int i = 1; i <= 13; i+=4)
  129. shape[i] = true;
  130. border[0] = null;
  131. border[2] = null;
  132. }
  133. if(!shape[4] || !shape[8]){
  134. for(int i = 0; i <= 12; i+=4)
  135. shape[i] = true;
  136. }
  137. bulletdestoried = true;
  138. }
  139. }
  140. if(border[0] != null && border[2] != null && bulletdirection == 2){
  141. if(bullet.intersects(border[0]) && bullet.intersects(border[2])){
  142. if(shape[5] && shape[9]){
  143. for(int i = 0; i <= 12; i+=4)
  144. shape[i] = true;
  145. border[0] = null;
  146. border[2] = null;
  147. }
  148. if(!shape[5] || !shape[9]){
  149. for(int i = 1; i <= 13; i+=4)
  150. shape[i] = true;
  151. }
  152. bulletdestoried = true;
  153. }
  154. }
  155. if(border[1] != null && border[3] != null && bulletdirection == 3){
  156. if(bullet.intersects(border[1]) && bullet.intersects(border[3])){
  157. if(shape[6] && shape[10]){
  158. for(int i = 3; i <= 15; i+=4)
  159. shape[i] = true;
  160. border[1] = null;
  161. border[3] = null;
  162. }
  163. if(!shape[6] || !shape[10]){
  164. for(int i = 2; i <= 14; i+=4)
  165. shape[i] = true;
  166. }
  167. bulletdestoried = true;
  168. }
  169. }
  170. if(border[1] != null && border[3] != null && bulletdirection == 2){
  171. if(bullet.intersects(border[1]) && bullet.intersects(border[3])){
  172. if(shape[7] && shape[11]){
  173. for(int i = 2; i <= 14; i+=4)
  174. shape[i] = true;
  175. border[1] = null;
  176. border[3] = null;
  177. }
  178. if(!shape[7] || !shape[11]){
  179. for(int i = 3; i <= 15; i+=4)
  180. shape[i] = true;
  181. }
  182. bulletdestoried = true;
  183. }
  184. }
  185. }
  186. if(bulletpower == 2){
  187. if(border[0] != null && border[1] != null && (bulletdirection == 0 || bulletdirection == 1)){
  188. if(bullet.intersects(border[0]) && bullet.intersects(border[1])){
  189. for(int i = 0; i < 8; i++)
  190. shape[i] = true;
  191. border[0] = null;
  192. border[1] = null;
  193. bulletdestoried = true;
  194. }
  195. }
  196. if(border[2] != null && border[3] != null && (bulletdirection == 0 || bulletdirection == 1)){
  197. if(bullet.intersects(border[2]) && bullet.intersects(border[3])){
  198. for(int i = 8; i < 16; i++)
  199. shape[i] = true;
  200. border[2] = null;
  201. border[3] = null;
  202. bulletdestoried = true;
  203. }
  204. }
  205. if(border[0] != null && border[2] != null && (bulletdirection == 2 || bulletdirection == 3)){
  206. if(bullet.intersects(border[0]) && bullet.intersects(border[2])){
  207. for(int i = 0; i <= 12; i+=4)
  208. shape[i] = true;
  209. for(int i = 1; i <= 13; i+=4)
  210. shape[i] = true;
  211. border[0] = null;
  212. border[2] = null;
  213. bulletdestoried = true;
  214. }
  215. }
  216. if(border[1] != null && border[3] != null && (bulletdirection == 2 || bulletdirection == 3)){
  217. if(bullet.intersects(border[1]) && bullet.intersects(border[3])){
  218. for(int i = 2; i <= 14; i+=4)
  219. shape[i] = true;
  220. for(int i = 3; i <= 15; i+=4)
  221. shape[i] = true;
  222. border[1] = null;
  223. border[3] = null;
  224. bulletdestoried = true;
  225. }
  226. }
  227. }
  228. //******************************************************************************************* if(border[0] != null ){
  229. if(border[0] != null){
  230. Rectangle a = new Rectangle(border[0].x, border[0].y, 5, 5);
  231. Rectangle b = new Rectangle(border[0].x + 7, border[0].y, 5, 5);
  232. Rectangle c = new Rectangle(border[0].x, border[0].y + 7, 5, 5);
  233. Rectangle d = new Rectangle(border[0].x + 7, border[0].y + 7, 5, 5);
  234. if(border[0] != null){
  235. if(bullet.intersects(border[0]) && bulletdirection == 1 && !(bullet.intersects(b) && ((!shape[2] || !shape[6]) || (shape[1] && shape[2] && shape[5] && shape[6])))){
  236. if(bullet.intersects(a) && shape[0] && !shape[4]){
  237. shape[4] = true;
  238. shape[5] = true;
  239. bulletdestoried = true;
  240. border[0] = null;
  241. }
  242. if(bullet.intersects(b) && shape[1] && !shape[5]){
  243. shape[4] = true;
  244. shape[5] = true;
  245. bulletdestoried = true;
  246. border[0] = null;
  247. }
  248. if(bullet.intersects(a) && !shape[0]) {
  249. if(bulletpower == 1){
  250. shape[0] = true;
  251. shape[1] = true;
  252. }
  253. if(bulletpower == 2){
  254. shape[0] = true;
  255. shape[1] = true;
  256. shape[4] = true;
  257. shape[5] = true;
  258. }
  259. bulletdestoried = true;
  260. if(shape[4] && shape[5])
  261. border[0] = null;
  262. }
  263. if(bullet.intersects(b) && !shape[1]) {
  264. if(bulletpower == 1){
  265. shape[0] = true;
  266. shape[1] = true;
  267. }
  268. if(bulletpower == 2){
  269. shape[0] = true;
  270. shape[1] = true;
  271. shape[4] = true;
  272. shape[5] = true;
  273. }
  274. bulletdestoried = true;
  275. if(shape[4] && shape[5])
  276. border[0] = null;
  277. }
  278. }
  279. }
  280. if(border[0] != null){
  281. if(bullet.intersects(border[0]) && bulletdirection == 0 && !(bullet.intersects(d) && ((!shape[2] || !shape[6]) || (shape[1] && shape[2] && shape[5] && shape[6])))){
  282. if(bullet.intersects(c) && shape[4] && !shape[0]){
  283. shape[0] = true;
  284. shape[1] = true;
  285. bulletdestoried = true;
  286. border[0] = null;
  287. }
  288. if(bullet.intersects(d) && shape[5] && !shape[1]){
  289. shape[0] = true;
  290. shape[1] = true;
  291. bulletdestoried = true;
  292. border[0] = null;
  293. }
  294. if(bullet.intersects(c) && !shape[4]){
  295. if(bulletpower == 1){
  296. shape[4] = true;
  297. shape[5] = true;
  298. }
  299. if(bulletpower == 2){
  300. shape[4] = true;
  301. shape[5] = true;
  302. shape[1] = true;
  303. shape[0] = true;
  304. }
  305. bulletdestoried = true;
  306. if(shape[0] && shape[1])
  307. border[0] = null;
  308. }
  309. if(bullet.intersects(d) && !shape[5]){
  310. if(bulletpower == 1){
  311. shape[4] = true;
  312. shape[5] = true;
  313. }
  314. if(bulletpower == 2){
  315. shape[4] = true;
  316. shape[5] = true;
  317. shape[1] = true;
  318. shape[0] = true;
  319. }
  320. bulletdestoried = true;
  321. if(shape[0] && shape[1])
  322. border[0] = null;
  323. }
  324. }
  325. }
  326. if(border[0] != null){
  327. if(bullet.intersects(border[0]) && bulletdirection == 3 && !(bullet.intersects(c) && ((!shape[8] || !shape[9]) || (shape[4] && shape[5] && shape[8] && shape[9])))){
  328. if(bullet.intersects(a) && shape[0] && !shape[1]){
  329. shape[1] = true;
  330. shape[5] = true;
  331. bulletdestoried = true;
  332. border[0] = null;
  333. }
  334. if(bullet.intersects(c) && shape[4] && !shape[5]){
  335. shape[1] = true;
  336. shape[5] = true;
  337. bulletdestoried = true;
  338. border[0] = null;
  339. }
  340. if(bullet.intersects(a) && !shape[0]){
  341. if(bulletpower == 1){
  342. shape[0] = true;
  343. shape[4] = true;
  344. }
  345. if(bulletpower == 2){
  346. shape[0] = true;
  347. shape[4] = true;
  348. shape[1] = true;
  349. shape[5] = true;
  350. }
  351. bulletdestoried = true;
  352. if(shape[1] && shape[5])
  353. border[0] = null;
  354. }
  355. if(bullet.intersects(c) && !shape[4]){
  356. if(bulletpower == 1){
  357. shape[0] = true;
  358. shape[4] = true;
  359. }
  360. if(bulletpower == 2){
  361. shape[0] = true;
  362. shape[4] = true;
  363. shape[1] = true;
  364. shape[5] = true;
  365. }
  366. bulletdestoried = true;
  367. if(shape[1] && shape[5])
  368. border[0] = null;
  369. }
  370. }
  371. }
  372. if(border[0] != null){
  373. if(bullet.intersects(border[0]) && bulletdirection == 2 && !(bullet.intersects(d) && ((!shape[8] || !shape[9]) || (shape[4] && shape[5] && shape[8] && shape[9])))){
  374. if(bullet.intersects(b) && shape[1] && !shape[0]){
  375. shape[0] = true;
  376. shape[4] = true;
  377. bulletdestoried = true;
  378. border[0] = null;
  379. }
  380. if(bullet.intersects(d) && shape[5] && !shape[4]){
  381. shape[0] = true;
  382. shape[4] = true;
  383. bulletdestoried = true;
  384. border[0] = null;
  385. }
  386. if(bullet.intersects(b) && !shape[1]){
  387. if(bulletpower == 1){
  388. shape[1] = true;
  389. shape[5] = true;
  390. }
  391. if(bulletpower == 2){
  392. shape[1] = true;
  393. shape[5] = true;
  394. shape[0] = true;
  395. shape[4] = true;
  396. }
  397. bulletdestoried = true;
  398. if(shape[0] && shape[4])
  399. border[0] = null;
  400. }
  401. if(bullet.intersects(d) && !shape[5]){
  402. if(bulletpower == 1){
  403. shape[1] = true;
  404. shape[5] = true;
  405. }
  406. if(bulletpower == 2){
  407. shape[1] = true;
  408. shape[5] = true;
  409. shape[0] = true;
  410. shape[4] = true;
  411. }
  412. bulletdestoried = true;
  413. if(shape[0] && shape[4])
  414. border[0] = null;
  415. }
  416. }
  417. }
  418. }
  419. //*******************************************************************************
  420. if(border[1] != null ){
  421. Rectangle a = new Rectangle(border[1].x, border[1].y, 5, 5);
  422. Rectangle b = new Rectangle(border[1].x + 7, border[1].y, 5, 5);
  423. Rectangle c = new Rectangle(border[1].x, border[1].y + 7, 5, 5);
  424. Rectangle d = new Rectangle(border[1].x + 7, border[1].y + 7, 5, 5);
  425. if(border[1] != null){
  426. if(bullet.intersects(border[1]) && bulletdirection == 1 && !(bullet.intersects(a) && ((!shape[1] || !shape[5]) || (shape[1] && shape[2] && shape[5] && shape[6])))){
  427. if(bullet.intersects(a) && shape[2] && !shape[6]){
  428. shape[6] = true;
  429. shape[7] = true;
  430. bulletdestoried = true;
  431. border[1] = null;
  432. }
  433. if(bullet.intersects(b) && shape[3] && !shape[7]){
  434. shape[6] = true;
  435. shape[7] = true;
  436. bulletdestoried = true;
  437. border[1] = null;
  438. }
  439. if(bullet.intersects(a) && !shape[2]) {
  440. if(bulletpower == 1){
  441. shape[2] = true;
  442. shape[3] = true;
  443. }
  444. if(bulletpower == 2){
  445. shape[2] = true;
  446. shape[3] = true;
  447. shape[6] = true;
  448. shape[7] = true;
  449. }
  450. bulletdestoried = true;
  451. if(shape[6] && shape[7])
  452. border[1] = null;
  453. }
  454. if(bullet.intersects(b) && !shape[3]) {
  455. if(bulletpower == 1){
  456. shape[2] = true;
  457. shape[3] = true;
  458. }
  459. if(bulletpower == 2){
  460. shape[2] = true;
  461. shape[3] = true;
  462. shape[6] = true;
  463. shape[7] = true;
  464. }
  465. bulletdestoried = true;
  466. if(shape[6] && shape[7])
  467. border[1] = null;
  468. }
  469. }
  470. }
  471. if(border[1] != null){
  472. if(bullet.intersects(border[1]) && bulletdirection == 0 && !(bullet.intersects(c) && ((!shape[1] || !shape[5]) || (shape[1] && shape[2] && shape[5] && shape[6])))){
  473. if(bullet.intersects(c) && shape[6] && !shape[2]){
  474. shape[2] = true;
  475. shape[3] = true;
  476. bulletdestoried = true;
  477. border[1] = null;
  478. }
  479. if(bullet.intersects(d) && shape[7] && !shape[3]){
  480. shape[2] = true;
  481. shape[3] = true;
  482. bulletdestoried = true;
  483. border[1] = null;
  484. }
  485. if(bullet.intersects(c) && !shape[6]){
  486. if(bulletpower == 1){
  487. shape[6] = true;
  488. shape[7] = true;
  489. }
  490. if(bulletpower == 2){
  491. shape[6] = true;
  492. shape[7] = true;
  493. shape[2] = true;
  494. shape[3] = true;
  495. }
  496. bulletdestoried = true;
  497. if(shape[2] && shape[3])
  498. border[1] = null;
  499. }
  500. if(bullet.intersects(d) && !shape[7]){
  501. if(bulletpower == 1){
  502. shape[6] = true;
  503. shape[7] = true;
  504. }
  505. if(bulletpower == 2){
  506. shape[6] = true;
  507. shape[7] = true;
  508. shape[2] = true;
  509. shape[3] = true;
  510. }
  511. bulletdestoried = true;
  512. if(shape[2] && shape[3])
  513. border[1] = null;
  514. }
  515. }
  516. }
  517. if(border[1] != null){
  518. if(bullet.intersects(border[1]) && bulletdirection == 3 && !(bullet.intersects(c) && ((!shape[10] || !shape[11]) || (shape[6] && shape[7] && shape[10] && shape[11])))){
  519. if(bullet.intersects(a) && shape[2] && !shape[3]){
  520. shape[3] = true;
  521. shape[7] = true;
  522. bulletdestoried = true;
  523. border[1] = null;
  524. }
  525. if(bullet.intersects(c) && shape[6] && !shape[7]){
  526. shape[3] = true;
  527. shape[7] = true;
  528. bulletdestoried = true;
  529. border[1] = null;
  530. }
  531. if(bullet.intersects(a) && !shape[2]){
  532. if(bulletpower == 1){
  533. shape[2] = true;
  534. shape[6] = true;
  535. }
  536. if(bulletpower == 2){
  537. shape[2] = true;
  538. shape[6] = true;
  539. shape[3] = true;
  540. shape[7] = true;
  541. }
  542. bulletdestoried = true;
  543. if(shape[3] && shape[7])
  544. border[1] = null;
  545. }
  546. if(bullet.intersects(c) && !shape[6]){
  547. if(bulletpower == 1){
  548. shape[2] = true;
  549. shape[6] = true;
  550. }
  551. if(bulletpower == 2){
  552. shape[2] = true;
  553. shape[6] = true;
  554. shape[3] = true;
  555. shape[7] = true;
  556. }
  557. bulletdestoried = true;
  558. if(shape[3] && shape[7])
  559. border[1] = null;
  560. }
  561. }
  562. }
  563. if(border[1] != null){
  564. if(bullet.intersects(border[1]) && bulletdirection == 2 && !(bullet.intersects(d) && ((!shape[10] || !shape[11]) || (shape[6] && shape[7] && shape[10] && shape[11])))){
  565. if(bullet.intersects(b) && shape[3] && !shape[2]){
  566. shape[2] = true;
  567. shape[6] = true;
  568. bulletdestoried = true;
  569. border[1] = null;
  570. }
  571. if(bullet.intersects(d) && shape[7] && !shape[6]){
  572. shape[2] = true;
  573. shape[6] = true;
  574. bulletdestoried = true;
  575. border[1] = null;
  576. }
  577. if(bullet.intersects(b) && !shape[3]){
  578. if(bulletpower == 1){
  579. shape[3] = true;
  580. shape[7] = true;
  581. }
  582. if(bulletpower == 2){
  583. shape[3] = true;
  584. shape[7] = true;
  585. shape[2] = true;
  586. shape[6] = true;
  587. }
  588. bulletdestoried = true;
  589. if(shape[2] && shape[6])
  590. border[1] = null;
  591. }
  592. if(bullet.intersects(d) && !shape[7]){
  593. if(bulletpower == 1){
  594. shape[3] = true;
  595. shape[7] = true;
  596. }
  597. if(bulletpower == 2){
  598. shape[3] = true;
  599. shape[7] = true;
  600. shape[2] = true;
  601. shape[6] = true;
  602. }
  603. bulletdestoried = true;
  604. if(shape[2] && shape[6])
  605. border[1] = null;
  606. }
  607. }
  608. }
  609. }
  610. //***********************************************************************************
  611. if(border[2] != null ){
  612. Rectangle a = new Rectangle(border[2].x, border[2].y, 5, 5);
  613. Rectangle b = new Rectangle(border[2].x + 7, border[2].y, 5, 5);
  614. Rectangle c = new Rectangle(border[2].x, border[2].y + 7, 5, 5);
  615. Rectangle d = new Rectangle(border[2].x + 7, border[2].y + 7, 5, 5);
  616. if(border[2] != null ){
  617. if(bullet.intersects(border[2]) && bulletdirection == 1 && !(bullet.intersects(b) && ((!shape[10] || !shape[14]) || (shape[9] && shape[10] && shape[13] && shape[14])))){
  618. if(bullet.intersects(a) && shape[8] && !shape[12]){
  619. shape[12] = true;
  620. shape[13] = true;
  621. bulletdestoried = true;
  622. border[2] = null;
  623. }
  624. if(bullet.intersects(b) && shape[9] && !shape[13]){
  625. shape[12] = true;
  626. shape[13] = true;
  627. bulletdestoried = true;
  628. border[2] = null;
  629. }
  630. if(bullet.intersects(a) && !shape[8]) {
  631. if(bulletpower == 1){
  632. shape[8] = true;
  633. shape[9] = true;
  634. }
  635. if(bulletpower == 2){
  636. shape[8] = true;
  637. shape[9] = true;
  638. shape[12] = true;
  639. shape[13] = true;
  640. }
  641. bulletdestoried = true;
  642. if(shape[12] && shape[13])
  643. border[2] = null;
  644. }
  645. if(bullet.intersects(b) && !shape[9]) {
  646. if(bulletpower == 1){
  647. shape[8] = true;
  648. shape[9] = true;
  649. }
  650. if(bulletpower == 2){
  651. shape[8] = true;
  652. shape[9] = true;
  653. shape[12] = true;
  654. shape[13] = true;
  655. }
  656. bulletdestoried = true;
  657. if(shape[12] && shape[13])
  658. border[2] = null;
  659. }
  660. }
  661. }
  662. if(border[2] != null){
  663. if(bullet.intersects(border[2]) && bulletdirection == 0 && !(bullet.intersects(d) && ((!shape[10] || !shape[14]) || (shape[9] && shape[10] && shape[13] && shape[14])))){
  664. if(bullet.intersects(c) && shape[12] && !shape[8]){
  665. shape[8] = true;
  666. shape[9] = true;
  667. bulletdestoried = true;
  668. border[2] = null;
  669. }
  670. if(bullet.intersects(d) && shape[13] && !shape[9]){
  671. shape[8] = true;
  672. shape[9] = true;
  673. bulletdestoried = true;
  674. border[2] = null;
  675. }
  676. if(bullet.intersects(c) && !shape[12]){
  677. if(bulletpower == 1){
  678. shape[12] = true;
  679. shape[13] = true;
  680. }
  681. if(bulletpower == 2){
  682. shape[12] = true;
  683. shape[13] = true;
  684. shape[8] = true;
  685. shape[9] = true;
  686. }
  687. bulletdestoried = true;
  688. if(shape[8] && shape[9])
  689. border[2] = null;
  690. }
  691. if(bullet.intersects(d) && !shape[13]){
  692. if(bulletpower == 1){
  693. shape[12] = true;
  694. shape[13] = true;
  695. }
  696. if(bulletpower == 2){
  697. shape[12] = true;
  698. shape[13] = true;
  699. shape[8] = true;
  700. shape[9] = true;
  701. }
  702. bulletdestoried = true;
  703. if(shape[8] && shape[9])
  704. border[2] = null;
  705. }
  706. }
  707. }
  708. if(border[2] != null){
  709. if(bullet.intersects(border[2]) && bulletdirection == 3 && !(bullet.intersects(a) && ((!shape[4] || !shape[5]) || (shape[4] && shape[5] && shape[8] && shape[9])))){
  710. if(bullet.intersects(a) && shape[8] && !shape[9]){
  711. shape[9] = true;
  712. shape[13] = true;
  713. bulletdestoried = true;
  714. border[2] = null;
  715. }
  716. if(bullet.intersects(c) && shape[12] && !shape[13]){
  717. shape[9] = true;
  718. shape[13] = true;
  719. bulletdestoried = true;
  720. border[2] = null;
  721. }
  722. if(bullet.intersects(a) && !shape[8]){
  723. if(bulletpower == 1){
  724. shape[8] = true;
  725. shape[12] = true;
  726. }
  727. if(bulletpower == 2){
  728. shape[8] = true;
  729. shape[12] = true;
  730. shape[9] = true;
  731. shape[13] = true;
  732. }
  733. bulletdestoried = true;
  734. if(shape[9] && shape[13])
  735. border[2] = null;
  736. }
  737. if(bullet.intersects(c) && !shape[12]){
  738. if(bulletpower == 1){
  739. shape[8] = true;
  740. shape[12] = true;
  741. }
  742. if(bulletpower == 2){
  743. shape[8] = true;
  744. shape[12] = true;
  745. shape[9] = true;
  746. shape[13] = true;
  747. }
  748. bulletdestoried = true;
  749. if(shape[9] && shape[13])
  750. border[2] = null;
  751. }
  752. }
  753. }
  754. if(border[2] != null){
  755. if(bullet.intersects(border[2]) && bulletdirection == 2 && !(bullet.intersects(b) && ((!shape[4] || !shape[5]) || (shape[4] && shape[5] && shape[8] && shape[9])))){
  756. if(bullet.intersects(b) && shape[9] && !shape[8]){
  757. shape[8] = true;
  758. shape[12] = true;
  759. bulletdestoried = true;
  760. border[2] = null;
  761. }
  762. if(bullet.intersects(d) && shape[13] && !shape[12]){
  763. shape[8] = true;
  764. shape[12] = true;
  765. bulletdestoried = true;
  766. border[2] = null;
  767. }
  768. if(bullet.intersects(b) && !shape[9]){
  769. if(bulletpower == 1){
  770. shape[9] = true;
  771. shape[13] = true;
  772. }
  773. if(bulletpower == 2){
  774. shape[9] = true;
  775. shape[13] = true;
  776. shape[8] = true;
  777. shape[12] = true;
  778. }
  779. bulletdestoried = true;
  780. if(shape[8] && shape[12])
  781. border[2] = null;
  782. }
  783. if(bullet.intersects(d) && !shape[13]){
  784. if(bulletpower == 1){
  785. shape[9] = true;
  786. shape[13] = true;
  787. }
  788. if(bulletpower == 2){
  789. shape[9] = true;
  790. shape[13] = true;
  791. shape[8] = true;
  792. shape[12] = true;
  793. }
  794. bulletdestoried = true;
  795. if(shape[8] && shape[12])
  796. border[2] = null;
  797. }
  798. }
  799. }
  800. }
  801.   //************************************************************************************
  802. if(border[3] != null ){
  803. Rectangle a = new Rectangle(border[3].x, border[3].y, 5, 5);
  804. Rectangle b = new Rectangle(border[3].x + 7, border[3].y, 5, 5);
  805. Rectangle c = new Rectangle(border[3].x, border[3].y + 7, 5, 5);
  806. Rectangle d = new Rectangle(border[3].x + 7, border[3].y + 7, 5, 5);
  807. if(border[3] != null ){
  808. if(bullet.intersects(border[3]) && bulletdirection == 1 && !(bullet.intersects(a) && ((!shape[9] || !shape[13]) || (shape[9] && shape[10] && shape[13] && shape[14])))){
  809. if(bullet.intersects(a) && shape[10] && !shape[14]){
  810. shape[14] = true;
  811. shape[15] = true;
  812. bulletdestoried = true;
  813. border[3] = null;
  814. }
  815. if(bullet.intersects(b) && shape[11] && !shape[15]){
  816. shape[14] = true;
  817. shape[15] = true;
  818. bulletdestoried = true;
  819. border[3] = null;
  820. }
  821. if(bullet.intersects(a) && !shape[10]) {
  822. if(bulletpower == 1){
  823. shape[10] = true;
  824. shape[11] = true;
  825. }
  826. if(bulletpower == 2){
  827. shape[10] = true;
  828. shape[11] = true;
  829. shape[14] = true;
  830. shape[15] = true;
  831. }
  832. bulletdestoried = true;
  833. if(shape[14] && shape[15])
  834. border[3] = null;
  835. }
  836. if(bullet.intersects(b) && !shape[11]) {
  837. if(bulletpower == 1){
  838. shape[10] = true;
  839. shape[11] = true;
  840. }
  841. if(bulletpower == 2){
  842. shape[10] = true;
  843. shape[11] = true;
  844. shape[14] = true;
  845. shape[15] = true;
  846. }
  847. bulletdestoried = true;
  848. if(shape[14] && shape[15])
  849. border[3] = null;
  850. }
  851. }
  852. }
  853. if(border[3] != null){
  854. if(bullet.intersects(border[3]) && bulletdirection == 0 && !(bullet.intersects(c) && ((!shape[9] || !shape[13]) || (shape[9] && shape[10] && shape[13] && shape[14])))){
  855. if(bullet.intersects(c) && shape[14] && !shape[10]){
  856. shape[10] = true;
  857. shape[11] = true;
  858. bulletdestoried = true;
  859. border[3] = null;
  860. }
  861. if(bullet.intersects(d) && shape[15] && !shape[11]){
  862. shape[10] = true;
  863. shape[11] = true;
  864. bulletdestoried = true;
  865. border[3] = null;
  866. }
  867. if(bullet.intersects(c) && !shape[14]){
  868. if(bulletpower == 1){
  869. shape[14] = true;
  870. shape[15] = true;
  871. }
  872. if(bulletpower == 2){
  873. shape[14] = true;
  874. shape[15] = true;
  875. shape[10] = true;
  876. shape[11] = true;
  877. }
  878. bulletdestoried = true;
  879. if(shape[10] && shape[11])
  880. border[3] = null;
  881. }
  882. if(bullet.intersects(d) && !shape[15]){
  883. if(bulletpower == 1){
  884. shape[14] = true;
  885. shape[15] = true;
  886. }
  887. if(bulletpower == 2){
  888. shape[14] = true;
  889. shape[15] = true;
  890. shape[10] = true;
  891. shape[11] = true;
  892. }
  893. bulletdestoried = true;
  894. if(shape[10] && shape[11])
  895. border[3] = null;
  896. }
  897. }
  898. }
  899. if(border[3] != null){
  900. if(bullet.intersects(border[3]) && bulletdirection == 3 && !(bullet.intersects(a) && ((!shape[6] || !shape[7]) || (shape[6] && shape[7] && shape[10] && shape[11])))){
  901. if(bullet.intersects(a) && shape[10] && !shape[11]){
  902. shape[11] = true;
  903. shape[15] = true;
  904. bulletdestoried = true;
  905. border[3] = null;
  906. }
  907. if(bullet.intersects(c) && shape[14] && !shape[15]){
  908. shape[11] = true;
  909. shape[15] = true;
  910. bulletdestoried = true;
  911. border[3] = null;
  912. }
  913. if(bullet.intersects(a) && !shape[10]){
  914. if(bulletpower == 1){
  915. shape[10] = true;
  916. shape[14] = true;
  917. }
  918. if(bulletpower == 2){
  919. shape[10] = true;
  920. shape[14] = true;
  921. shape[11] = true;
  922. shape[15] = true;
  923. }
  924. bulletdestoried = true;
  925. if(shape[11] && shape[15])
  926. border[3] = null;
  927. }
  928. if(bullet.intersects(c) && !shape[14]){
  929. if(bulletpower == 1){
  930. shape[10] = true;
  931. shape[14] = true;
  932. }
  933. if(bulletpower == 2){
  934. shape[10] = true;
  935. shape[14] = true;
  936. shape[11] = true;
  937. shape[15] = true;
  938. }
  939. bulletdestoried = true;
  940. if(shape[11] && shape[15])
  941. border[3] = null;
  942. }
  943. }
  944. }
  945. if(border[3] != null){
  946. if(bullet.intersects(border[3]) && bulletdirection == 2 && !(bullet.intersects(b) && ((!shape[6] || !shape[7]) || (shape[6] && shape[7] && shape[10] && shape[11])))){
  947. if(bullet.intersects(b) && shape[11] && !shape[10]){
  948. shape[10] = true;
  949. shape[14] = true;
  950. bulletdestoried = true;
  951. border[3] = null;
  952. }
  953. if(bullet.intersects(d) && shape[15] && !shape[14]){
  954. shape[10] = true;
  955. shape[14] = true;
  956. bulletdestoried = true;
  957. border[3] = null;
  958. }
  959. if(bullet.intersects(b) && !shape[11]){
  960. if(bulletpower == 1){
  961. shape[11] = true;
  962. shape[15] = true;
  963. }
  964. if(bulletpower == 2){
  965. shape[11] = true;
  966. shape[15] = true;
  967. shape[10] = true;
  968. shape[14] = true;
  969. }
  970. bulletdestoried = true;
  971. if(shape[10] && shape[14])
  972. border[3] = null;
  973. }
  974. if(bullet.intersects(d) && !shape[15]){
  975. if(bulletpower == 1){
  976. shape[11] = true;
  977. shape[15] = true;
  978. }
  979. if(bulletpower == 2){
  980. shape[11] = true;
  981. shape[15] = true;
  982. shape[10] = true;
  983. shape[14] = true;
  984. }
  985. bulletdestoried = true;
  986. if(shape[10] && shape[14])
  987. border[3] = null;
  988. }
  989. }
  990. }
  991. }
  992. //write changes to the outputline
  993. gameModel.outputLine+="w" + xPos + ","+ yPos+",";
  994. for(int i = 0; i < shape.length; i++){
  995. if(shape[i])
  996. gameModel.outputLine+="1";
  997. else
  998. gameModel.outputLine+="0";
  999. }
  1000. gameModel.outputLine+=";";
  1001. }
  1002. //===========================================================================================
  1003. public boolean walldestoried(){
  1004. if(walldestoried)
  1005. return true;
  1006. walldestoried = true;
  1007. for(int i = 0; i < shape.length; i++)
  1008. if(!shape[i]){
  1009. walldestoried = false;
  1010. break;
  1011. }
  1012. return walldestoried;
  1013. }
  1014. public Rectangle getBorder(){
  1015. return generalBorder;
  1016. }
  1017. public Rectangle[] getDetailedBorder(){
  1018. return border;
  1019. }
  1020. public void draw(Graphics g) {
  1021. if(walldestoried)
  1022. return;
  1023. g.drawImage(wall, xPos - 12, yPos - 12, null);
  1024. g.setColor(new Color(128, 64, 0));
  1025. if(shape[0])
  1026. g.fillRect(xPos - 12, yPos - 12, 7, 7);
  1027. if(shape[1])
  1028. g.fillRect(xPos - 6, yPos - 12, 7, 7);
  1029. if(shape[2])
  1030. g.fillRect(xPos, yPos - 12, 7, 7);
  1031. if(shape[3])
  1032. g.fillRect(xPos + 6, yPos - 12, 7, 7);
  1033. if(shape[4])
  1034. g.fillRect(xPos - 12, yPos - 6, 7, 7);
  1035. if(shape[5])
  1036. g.fillRect(xPos - 6, yPos - 6, 7, 7);
  1037. if(shape[6])
  1038. g.fillRect(xPos, yPos - 6, 7, 7);
  1039. if(shape[7])
  1040. g.fillRect(xPos + 6, yPos - 6, 7, 7);
  1041. if(shape[8])
  1042. g.fillRect(xPos - 12, yPos, 7, 7);
  1043. if(shape[9])
  1044. g.fillRect(xPos - 6, yPos, 7, 7);
  1045. if(shape[10])
  1046. g.fillRect(xPos, yPos, 7, 7);
  1047. if(shape[11])
  1048. g.fillRect(xPos + 6, yPos, 7, 7);
  1049. if(shape[12])
  1050. g.fillRect(xPos - 12, yPos + 6, 7, 7);
  1051. if(shape[13])
  1052. g.fillRect(xPos - 6, yPos + 6, 7, 7);
  1053. if(shape[14])
  1054. g.fillRect(xPos, yPos + 6, 7, 7);
  1055. if(shape[15])
  1056. g.fillRect(xPos + 6, yPos + 6, 7, 7);
  1057. }
  1058. public String getType(){
  1059. return "wall";
  1060. }
  1061. //unused method
  1062. public void move(){}
  1063. }