├── GameClient ├── Images │ ├── 0.PNG │ ├── 1.PNG │ ├── 2.PNG │ ├── 3.PNG │ ├── 4.PNG │ ├── 5.PNG │ ├── 6.PNG │ ├── 7.PNG │ ├── Scrap.shs │ ├── Thumbs.db │ ├── bg.JPG │ ├── bomb.PNG │ ├── bomb1.PNG │ └── bomb2.PNG ├── boom.wav ├── build.xml ├── build │ └── classes │ │ ├── Bomb$1.class │ │ ├── Bomb$BombShotThread.class │ │ ├── Bomb.class │ │ ├── Client.class │ │ ├── ClientGUI$ClientRecivingThread.class │ │ ├── ClientGUI.class │ │ ├── GameBoardPanel.class │ │ ├── InputManager.class │ │ ├── LoopingByteInputStream.class │ │ ├── Main.class │ │ ├── Protocol.class │ │ ├── SimpleSoundPlayer.class │ │ ├── SoundManger$PlayThread.class │ │ ├── SoundManger.class │ │ └── Tank.class ├── dist │ ├── GameClient.jar │ ├── Images │ │ ├── 0.PNG │ │ ├── 1.PNG │ │ ├── 2.PNG │ │ ├── 3.PNG │ │ ├── 4.PNG │ │ ├── 5.PNG │ │ ├── 6.PNG │ │ ├── 7.PNG │ │ ├── Scrap.shs │ │ ├── Thumbs.db │ │ ├── bg.JPG │ │ ├── bomb.PNG │ │ ├── bomb1.PNG │ │ └── bomb2.PNG │ ├── README.TXT │ ├── boom.wav │ └── start.wav ├── manifest.mf ├── nbproject │ ├── build-impl.xml │ ├── genfiles.properties │ ├── private │ │ ├── private.properties │ │ └── private.xml │ ├── project.properties │ └── project.xml ├── src │ ├── Bomb.java │ ├── Client.java │ ├── ClientGUI.java │ ├── GameBoardPanel.java │ ├── InputManager.java │ ├── LoopingByteInputStream.java │ ├── Main.java │ ├── Protocol.java │ ├── SimpleSoundPlayer.java │ ├── SoundManger.java │ └── Tank.java └── start.wav ├── GameServer ├── build.xml ├── build │ └── classes │ │ ├── Main.class │ │ ├── Protocol.class │ │ ├── Server$ClientInfo.class │ │ ├── Server.class │ │ └── ServerGUI.class ├── dist │ ├── GameServer.jar │ └── README.TXT ├── manifest.mf ├── nbproject │ ├── build-impl.xml │ ├── genfiles.properties │ ├── private │ │ ├── private.properties │ │ └── private.xml │ ├── project.properties │ └── project.xml └── src │ ├── Main.java │ ├── Protocol.java │ ├── Server.java │ └── ServerGUI.java └── README.md /GameClient/Images/0.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/Images/0.PNG -------------------------------------------------------------------------------- /GameClient/Images/1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/Images/1.PNG -------------------------------------------------------------------------------- /GameClient/Images/2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/Images/2.PNG -------------------------------------------------------------------------------- /GameClient/Images/3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/Images/3.PNG -------------------------------------------------------------------------------- /GameClient/Images/4.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/Images/4.PNG -------------------------------------------------------------------------------- /GameClient/Images/5.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/Images/5.PNG -------------------------------------------------------------------------------- /GameClient/Images/6.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/Images/6.PNG -------------------------------------------------------------------------------- /GameClient/Images/7.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/Images/7.PNG -------------------------------------------------------------------------------- /GameClient/Images/Scrap.shs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/Images/Scrap.shs -------------------------------------------------------------------------------- /GameClient/Images/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/Images/Thumbs.db -------------------------------------------------------------------------------- /GameClient/Images/bg.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/Images/bg.JPG -------------------------------------------------------------------------------- /GameClient/Images/bomb.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/Images/bomb.PNG -------------------------------------------------------------------------------- /GameClient/Images/bomb1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/Images/bomb1.PNG -------------------------------------------------------------------------------- /GameClient/Images/bomb2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/Images/bomb2.PNG -------------------------------------------------------------------------------- /GameClient/boom.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/boom.wav -------------------------------------------------------------------------------- /GameClient/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Builds, tests, and runs the project GameClient. 7 | 8 | 69 | 70 | -------------------------------------------------------------------------------- /GameClient/build/classes/Bomb$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/build/classes/Bomb$1.class -------------------------------------------------------------------------------- /GameClient/build/classes/Bomb$BombShotThread.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/build/classes/Bomb$BombShotThread.class -------------------------------------------------------------------------------- /GameClient/build/classes/Bomb.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/build/classes/Bomb.class -------------------------------------------------------------------------------- /GameClient/build/classes/Client.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/build/classes/Client.class -------------------------------------------------------------------------------- /GameClient/build/classes/ClientGUI$ClientRecivingThread.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/build/classes/ClientGUI$ClientRecivingThread.class -------------------------------------------------------------------------------- /GameClient/build/classes/ClientGUI.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/build/classes/ClientGUI.class -------------------------------------------------------------------------------- /GameClient/build/classes/GameBoardPanel.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/build/classes/GameBoardPanel.class -------------------------------------------------------------------------------- /GameClient/build/classes/InputManager.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/build/classes/InputManager.class -------------------------------------------------------------------------------- /GameClient/build/classes/LoopingByteInputStream.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/build/classes/LoopingByteInputStream.class -------------------------------------------------------------------------------- /GameClient/build/classes/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/build/classes/Main.class -------------------------------------------------------------------------------- /GameClient/build/classes/Protocol.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/build/classes/Protocol.class -------------------------------------------------------------------------------- /GameClient/build/classes/SimpleSoundPlayer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/build/classes/SimpleSoundPlayer.class -------------------------------------------------------------------------------- /GameClient/build/classes/SoundManger$PlayThread.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/build/classes/SoundManger$PlayThread.class -------------------------------------------------------------------------------- /GameClient/build/classes/SoundManger.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/build/classes/SoundManger.class -------------------------------------------------------------------------------- /GameClient/build/classes/Tank.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/build/classes/Tank.class -------------------------------------------------------------------------------- /GameClient/dist/GameClient.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/dist/GameClient.jar -------------------------------------------------------------------------------- /GameClient/dist/Images/0.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/dist/Images/0.PNG -------------------------------------------------------------------------------- /GameClient/dist/Images/1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/dist/Images/1.PNG -------------------------------------------------------------------------------- /GameClient/dist/Images/2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/dist/Images/2.PNG -------------------------------------------------------------------------------- /GameClient/dist/Images/3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/dist/Images/3.PNG -------------------------------------------------------------------------------- /GameClient/dist/Images/4.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/dist/Images/4.PNG -------------------------------------------------------------------------------- /GameClient/dist/Images/5.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/dist/Images/5.PNG -------------------------------------------------------------------------------- /GameClient/dist/Images/6.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/dist/Images/6.PNG -------------------------------------------------------------------------------- /GameClient/dist/Images/7.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/dist/Images/7.PNG -------------------------------------------------------------------------------- /GameClient/dist/Images/Scrap.shs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/dist/Images/Scrap.shs -------------------------------------------------------------------------------- /GameClient/dist/Images/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/dist/Images/Thumbs.db -------------------------------------------------------------------------------- /GameClient/dist/Images/bg.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/dist/Images/bg.JPG -------------------------------------------------------------------------------- /GameClient/dist/Images/bomb.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/dist/Images/bomb.PNG -------------------------------------------------------------------------------- /GameClient/dist/Images/bomb1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/dist/Images/bomb1.PNG -------------------------------------------------------------------------------- /GameClient/dist/Images/bomb2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/dist/Images/bomb2.PNG -------------------------------------------------------------------------------- /GameClient/dist/README.TXT: -------------------------------------------------------------------------------- 1 | ======================== 2 | BUILD OUTPUT DESCRIPTION 3 | ======================== 4 | 5 | When you build an Java application project that has a main class, the IDE 6 | automatically copies all of the JAR 7 | files on the projects classpath to your projects dist/lib folder. The IDE 8 | also adds each of the JAR files to the Class-Path element in the application 9 | JAR files manifest file (MANIFEST.MF). 10 | 11 | To run the project from the command line, go to the dist folder and 12 | type the following: 13 | 14 | java -jar "GameClient.jar" 15 | 16 | To distribute this project, zip up the dist folder (including the lib folder) 17 | and distribute the ZIP file. 18 | 19 | Notes: 20 | 21 | * If two JAR files on the project classpath have the same name, only the first 22 | JAR file is copied to the lib folder. 23 | * If the classpath contains a folder of classes or resources, none of the 24 | classpath elements are copied to the dist folder. 25 | * If a library on the projects classpath also has a Class-Path element 26 | specified in the manifest,the content of the Class-Path element has to be on 27 | the projects runtime path. 28 | * To set a main class in a standard Java project, right-click the project node 29 | in the Projects window and choose Properties. Then click Run and enter the 30 | class name in the Main Class field. Alternatively, you can manually type the 31 | class name in the manifest Main-Class element. 32 | -------------------------------------------------------------------------------- /GameClient/dist/boom.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/dist/boom.wav -------------------------------------------------------------------------------- /GameClient/dist/start.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/dist/start.wav -------------------------------------------------------------------------------- /GameClient/manifest.mf: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | X-COMMENT: Main-Class will be added automatically by build 3 | 4 | -------------------------------------------------------------------------------- /GameClient/nbproject/build-impl.xml: -------------------------------------------------------------------------------- 1 | 2 | 22 | 23 | 24 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | Must set src.dir 128 | Must set test.src.dir 129 | Must set build.dir 130 | Must set dist.dir 131 | Must set build.classes.dir 132 | Must set dist.javadoc.dir 133 | Must set build.test.classes.dir 134 | Must set build.test.results.dir 135 | Must set build.classes.excludes 136 | Must set dist.jar 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | Must set javac.includes 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | Must select some files in the IDE or set javac.includes 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | To run this application from the command line without Ant, try: 373 | 374 | 375 | 376 | 377 | 378 | 379 | java -cp "${run.classpath.with.dist.jar}" ${main.class} 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | To run this application from the command line without Ant, try: 403 | 404 | java -jar "${dist.jar.resolved}" 405 | 406 | 407 | 408 | 409 | 410 | 411 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | Must select one file in the IDE or set run.class 428 | 429 | 430 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | Must select one file in the IDE or set debug.class 452 | 453 | 454 | 455 | 456 | Must set fix.includes 457 | 458 | 459 | 460 | 461 | 462 | 463 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | Must select some files in the IDE or set javac.includes 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | Some tests failed; see details above. 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | Must select some files in the IDE or set test.includes 548 | 549 | 550 | 551 | Some tests failed; see details above. 552 | 553 | 554 | 559 | 560 | Must select one file in the IDE or set test.class 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 590 | 591 | Must select one file in the IDE or set applet.url 592 | 593 | 594 | 595 | 596 | 597 | 598 | 603 | 604 | Must select one file in the IDE or set applet.url 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | -------------------------------------------------------------------------------- /GameClient/nbproject/genfiles.properties: -------------------------------------------------------------------------------- 1 | build.xml.data.CRC32=cfdeb0da 2 | build.xml.script.CRC32=2138e0e2 3 | build.xml.stylesheet.CRC32=be360661 4 | # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. 5 | # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. 6 | nbproject/build-impl.xml.data.CRC32=cfdeb0da 7 | nbproject/build-impl.xml.script.CRC32=1b34a7f2 8 | nbproject/build-impl.xml.stylesheet.CRC32=f1d9da08 9 | -------------------------------------------------------------------------------- /GameClient/nbproject/private/private.properties: -------------------------------------------------------------------------------- 1 | application.args= 2 | javac.debug=true 3 | javadoc.preview=true 4 | jaxws.endorsed.dir=C:\\Program Files\\NetBeans 6.0\\java1\\modules\\ext\\jaxws21\\api 5 | user.properties.file=C:\\Documents and Settings\\Mohamed Talaat\\.netbeans\\6.0\\build.properties 6 | -------------------------------------------------------------------------------- /GameClient/nbproject/private/private.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /GameClient/nbproject/project.properties: -------------------------------------------------------------------------------- 1 | application.args= 2 | build.classes.dir=${build.dir}/classes 3 | build.classes.excludes=**/*.java,**/*.form 4 | # This directory is removed when the project is cleaned: 5 | build.dir=build 6 | build.generated.dir=${build.dir}/generated 7 | # Only compile against the classpath explicitly listed here: 8 | build.sysclasspath=ignore 9 | build.test.classes.dir=${build.dir}/test/classes 10 | build.test.results.dir=${build.dir}/test/results 11 | debug.classpath=\ 12 | ${run.classpath} 13 | debug.test.classpath=\ 14 | ${run.test.classpath} 15 | # This directory is removed when the project is cleaned: 16 | dist.dir=dist 17 | dist.jar=${dist.dir}/GameClient.jar 18 | dist.javadoc.dir=${dist.dir}/javadoc 19 | excludes= 20 | includes=** 21 | jar.compress=false 22 | javac.classpath= 23 | # Space-separated list of extra javac options 24 | javac.compilerargs= 25 | javac.deprecation=false 26 | javac.source=1.6 27 | javac.target=1.6 28 | javac.test.classpath=\ 29 | ${javac.classpath}:\ 30 | ${build.classes.dir}:\ 31 | ${libs.junit.classpath} 32 | javadoc.additionalparam= 33 | javadoc.author=false 34 | javadoc.encoding= 35 | javadoc.noindex=false 36 | javadoc.nonavbar=false 37 | javadoc.notree=false 38 | javadoc.private=false 39 | javadoc.splitindex=true 40 | javadoc.use=true 41 | javadoc.version=false 42 | javadoc.windowtitle= 43 | main.class=Main 44 | manifest.file=manifest.mf 45 | meta.inf.dir=${src.dir}/META-INF 46 | platform.active=default_platform 47 | run.classpath=\ 48 | ${javac.classpath}:\ 49 | ${build.classes.dir} 50 | # Space-separated list of JVM arguments used when running the project 51 | # (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value 52 | # or test-sys-prop.name=value to set system properties for unit tests): 53 | run.jvmargs= 54 | run.test.classpath=\ 55 | ${javac.test.classpath}:\ 56 | ${build.test.classes.dir} 57 | src.dir=src 58 | test.src.dir=test 59 | -------------------------------------------------------------------------------- /GameClient/nbproject/project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.netbeans.modules.java.j2seproject 4 | 5 | 6 | GameClient 7 | 1.6.5 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /GameClient/src/Bomb.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/src/Bomb.java -------------------------------------------------------------------------------- /GameClient/src/Client.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/src/Client.java -------------------------------------------------------------------------------- /GameClient/src/ClientGUI.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/src/ClientGUI.java -------------------------------------------------------------------------------- /GameClient/src/GameBoardPanel.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/src/GameBoardPanel.java -------------------------------------------------------------------------------- /GameClient/src/InputManager.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/src/InputManager.java -------------------------------------------------------------------------------- /GameClient/src/LoopingByteInputStream.java: -------------------------------------------------------------------------------- 1 | /* 2 | * To change this template, choose Tools | Templates 3 | * and open the template in the editor. 4 | */ 5 | 6 | /** 7 | * 8 | * @author sherif 9 | */ 10 | import java.io.ByteArrayInputStream; 11 | import java.io.IOException; 12 | 13 | /** 14 | The LoopingByteInputStream is a ByteArrayInputStream that 15 | loops indefinitely. The looping stops when the close() method 16 | is called. 17 |

Possible ideas to extend this class:

20 | */ 21 | public class LoopingByteInputStream extends ByteArrayInputStream { 22 | 23 | private boolean closed; 24 | 25 | /** 26 | Creates a new LoopingByteInputStream with the specified 27 | byte array. The array is not copied. 28 | */ 29 | public LoopingByteInputStream(byte[] buffer) { 30 | super(buffer); 31 | closed = false; 32 | } 33 | 34 | 35 | /** 36 | Reads length bytes from the array. If the 37 | end of the array is reached, the reading starts over from 38 | the beginning of the array. Returns -1 if the array has 39 | been closed. 40 | */ 41 | public int read(byte[] buffer, int offset, int length) { 42 | if (closed) { 43 | return -1; 44 | } 45 | int totalBytesRead = 0; 46 | 47 | while (totalBytesRead < length) { 48 | int numBytesRead = super.read(buffer, 49 | offset + totalBytesRead, 50 | length - totalBytesRead); 51 | 52 | if (numBytesRead > 0) { 53 | totalBytesRead += numBytesRead; 54 | } 55 | else { 56 | reset(); 57 | } 58 | } 59 | return totalBytesRead; 60 | } 61 | 62 | 63 | /** 64 | Closes the stream. Future calls to the read() methods 65 | will return 1. 66 | */ 67 | public void close() throws IOException { 68 | super.close(); 69 | closed = true; 70 | } 71 | 72 | } 73 | 74 | -------------------------------------------------------------------------------- /GameClient/src/Main.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/src/Main.java -------------------------------------------------------------------------------- /GameClient/src/Protocol.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/src/Protocol.java -------------------------------------------------------------------------------- /GameClient/src/SimpleSoundPlayer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * To change this template, choose Tools | Templates 3 | * and open the template in the editor. 4 | */ 5 | 6 | /** 7 | * 8 | * @author sherif 9 | */ 10 | import java.io.*; 11 | import javax.sound.sampled.*; 12 | 13 | /** 14 | The SimpleSoundPlayer encapsulates a sound that can be opened 15 | from the file system and later played. 16 | */ 17 | public class SimpleSoundPlayer { 18 | 19 | public static void main(String[] args) { 20 | // load a sound 21 | SimpleSoundPlayer sound = 22 | new SimpleSoundPlayer("D:/Collage/Fourth Year/Second Term/Dist sys/Lab/assg1_final/GameServer/src/Untitled1.wav"); 23 | 24 | // create the stream to play 25 | InputStream stream = 26 | new LoopingByteInputStream(sound.getSamples()); 27 | 28 | InputStream stream_one = 29 | new ByteArrayInputStream(sound.getSamples()); 30 | 31 | // play the sound in loop 32 | //sound.play(stream); 33 | //play sound only once 34 | sound.play(stream_one); 35 | // exit 36 | System.exit(0);//will be deleted 37 | } 38 | 39 | 40 | private AudioFormat format; 41 | private byte[] samples; 42 | 43 | /** 44 | Opens a sound from a file. 45 | */ 46 | public SimpleSoundPlayer(String filename) { 47 | try { 48 | // open the audio input stream 49 | AudioInputStream stream = 50 | AudioSystem.getAudioInputStream( 51 | new File(filename)); 52 | 53 | format = stream.getFormat(); 54 | 55 | // get the audio samples 56 | samples = getSamples(stream); 57 | } 58 | catch (UnsupportedAudioFileException ex) { 59 | ex.printStackTrace(); 60 | } 61 | catch (IOException ex) { 62 | ex.printStackTrace(); 63 | } 64 | } 65 | 66 | 67 | /** 68 | Gets the samples of this sound as a byte array. 69 | */ 70 | public byte[] getSamples() { 71 | return samples; 72 | } 73 | 74 | 75 | /** 76 | Gets the samples from an AudioInputStream as an array 77 | of bytes. 78 | */ 79 | private byte[] getSamples(AudioInputStream audioStream) { 80 | // get the number of bytes to read 81 | int length = (int)(audioStream.getFrameLength() * 82 | format.getFrameSize()); 83 | 84 | // read the entire stream 85 | byte[] samples = new byte[length]; 86 | DataInputStream is = new DataInputStream(audioStream); 87 | try { 88 | is.readFully(samples); 89 | } 90 | catch (IOException ex) { 91 | ex.printStackTrace(); 92 | } 93 | 94 | // return the samples 95 | return samples; 96 | } 97 | 98 | 99 | /** 100 | Plays a stream. This method blocks (doesn't return) until 101 | the sound is finished playing. 102 | */ 103 | public void play(InputStream source) { 104 | 105 | // use a short, 100ms (1/10th sec) buffer for real-time 106 | // change to the sound stream 107 | int bufferSize = format.getFrameSize() * 108 | Math.round(format.getSampleRate() / 10); 109 | byte[] buffer = new byte[bufferSize]; 110 | 111 | // create a line to play to 112 | SourceDataLine line; 113 | try { 114 | DataLine.Info info = 115 | new DataLine.Info(SourceDataLine.class, format); 116 | line = (SourceDataLine)AudioSystem.getLine(info); 117 | line.open(format, bufferSize); 118 | } 119 | catch (LineUnavailableException ex) { 120 | ex.printStackTrace(); 121 | return; 122 | } 123 | 124 | // start the line 125 | line.start(); 126 | 127 | // copy data to the line 128 | try { 129 | int numBytesRead = 0; 130 | while (numBytesRead != -1) { 131 | numBytesRead = 132 | source.read(buffer, 0, buffer.length); 133 | if (numBytesRead != -1) { 134 | line.write(buffer, 0, numBytesRead); 135 | } 136 | } 137 | } 138 | catch (IOException ex) { 139 | ex.printStackTrace(); 140 | } 141 | 142 | // wait until all data is played 143 | line.drain(); 144 | 145 | // close the line 146 | line.close(); 147 | 148 | } 149 | 150 | 151 | } 152 | -------------------------------------------------------------------------------- /GameClient/src/SoundManger.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/src/SoundManger.java -------------------------------------------------------------------------------- /GameClient/src/Tank.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/src/Tank.java -------------------------------------------------------------------------------- /GameClient/start.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameClient/start.wav -------------------------------------------------------------------------------- /GameServer/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Builds, tests, and runs the project GameServer. 7 | 8 | 69 | 70 | -------------------------------------------------------------------------------- /GameServer/build/classes/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameServer/build/classes/Main.class -------------------------------------------------------------------------------- /GameServer/build/classes/Protocol.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameServer/build/classes/Protocol.class -------------------------------------------------------------------------------- /GameServer/build/classes/Server$ClientInfo.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameServer/build/classes/Server$ClientInfo.class -------------------------------------------------------------------------------- /GameServer/build/classes/Server.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameServer/build/classes/Server.class -------------------------------------------------------------------------------- /GameServer/build/classes/ServerGUI.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameServer/build/classes/ServerGUI.class -------------------------------------------------------------------------------- /GameServer/dist/GameServer.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameServer/dist/GameServer.jar -------------------------------------------------------------------------------- /GameServer/dist/README.TXT: -------------------------------------------------------------------------------- 1 | ======================== 2 | BUILD OUTPUT DESCRIPTION 3 | ======================== 4 | 5 | When you build an Java application project that has a main class, the IDE 6 | automatically copies all of the JAR 7 | files on the projects classpath to your projects dist/lib folder. The IDE 8 | also adds each of the JAR files to the Class-Path element in the application 9 | JAR files manifest file (MANIFEST.MF). 10 | 11 | To run the project from the command line, go to the dist folder and 12 | type the following: 13 | 14 | java -jar "GameServer.jar" 15 | 16 | To distribute this project, zip up the dist folder (including the lib folder) 17 | and distribute the ZIP file. 18 | 19 | Notes: 20 | 21 | * If two JAR files on the project classpath have the same name, only the first 22 | JAR file is copied to the lib folder. 23 | * If the classpath contains a folder of classes or resources, none of the 24 | classpath elements are copied to the dist folder. 25 | * If a library on the projects classpath also has a Class-Path element 26 | specified in the manifest,the content of the Class-Path element has to be on 27 | the projects runtime path. 28 | * To set a main class in a standard Java project, right-click the project node 29 | in the Projects window and choose Properties. Then click Run and enter the 30 | class name in the Main Class field. Alternatively, you can manually type the 31 | class name in the manifest Main-Class element. 32 | -------------------------------------------------------------------------------- /GameServer/manifest.mf: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | X-COMMENT: Main-Class will be added automatically by build 3 | 4 | -------------------------------------------------------------------------------- /GameServer/nbproject/build-impl.xml: -------------------------------------------------------------------------------- 1 | 2 | 22 | 23 | 24 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | Must set src.dir 128 | Must set test.src.dir 129 | Must set build.dir 130 | Must set dist.dir 131 | Must set build.classes.dir 132 | Must set dist.javadoc.dir 133 | Must set build.test.classes.dir 134 | Must set build.test.results.dir 135 | Must set build.classes.excludes 136 | Must set dist.jar 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | Must set javac.includes 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | Must select some files in the IDE or set javac.includes 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | To run this application from the command line without Ant, try: 373 | 374 | 375 | 376 | 377 | 378 | 379 | java -cp "${run.classpath.with.dist.jar}" ${main.class} 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | To run this application from the command line without Ant, try: 403 | 404 | java -jar "${dist.jar.resolved}" 405 | 406 | 407 | 408 | 409 | 410 | 411 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | Must select one file in the IDE or set run.class 428 | 429 | 430 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | Must select one file in the IDE or set debug.class 452 | 453 | 454 | 455 | 456 | Must set fix.includes 457 | 458 | 459 | 460 | 461 | 462 | 463 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | Must select some files in the IDE or set javac.includes 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | Some tests failed; see details above. 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | Must select some files in the IDE or set test.includes 548 | 549 | 550 | 551 | Some tests failed; see details above. 552 | 553 | 554 | 559 | 560 | Must select one file in the IDE or set test.class 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 590 | 591 | Must select one file in the IDE or set applet.url 592 | 593 | 594 | 595 | 596 | 597 | 598 | 603 | 604 | Must select one file in the IDE or set applet.url 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | -------------------------------------------------------------------------------- /GameServer/nbproject/genfiles.properties: -------------------------------------------------------------------------------- 1 | build.xml.data.CRC32=0fdee90b 2 | build.xml.script.CRC32=3138753d 3 | build.xml.stylesheet.CRC32=be360661 4 | # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. 5 | # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. 6 | nbproject/build-impl.xml.data.CRC32=0fdee90b 7 | nbproject/build-impl.xml.script.CRC32=1ff1931a 8 | nbproject/build-impl.xml.stylesheet.CRC32=f1d9da08 9 | -------------------------------------------------------------------------------- /GameServer/nbproject/private/private.properties: -------------------------------------------------------------------------------- 1 | application.args= 2 | javac.debug=true 3 | javadoc.preview=true 4 | jaxws.endorsed.dir=C:\\Program Files\\NetBeans 6.0\\java1\\modules\\ext\\jaxws21\\api 5 | user.properties.file=C:\\Documents and Settings\\Mohamed Talaat\\.netbeans\\6.0\\build.properties 6 | -------------------------------------------------------------------------------- /GameServer/nbproject/private/private.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /GameServer/nbproject/project.properties: -------------------------------------------------------------------------------- 1 | application.args= 2 | build.classes.dir=${build.dir}/classes 3 | build.classes.excludes=**/*.java,**/*.form 4 | # This directory is removed when the project is cleaned: 5 | build.dir=build 6 | build.generated.dir=${build.dir}/generated 7 | # Only compile against the classpath explicitly listed here: 8 | build.sysclasspath=ignore 9 | build.test.classes.dir=${build.dir}/test/classes 10 | build.test.results.dir=${build.dir}/test/results 11 | debug.classpath=\ 12 | ${run.classpath} 13 | debug.test.classpath=\ 14 | ${run.test.classpath} 15 | # This directory is removed when the project is cleaned: 16 | dist.dir=dist 17 | dist.jar=${dist.dir}/GameServer.jar 18 | dist.javadoc.dir=${dist.dir}/javadoc 19 | excludes= 20 | includes=** 21 | jar.compress=false 22 | javac.classpath= 23 | # Space-separated list of extra javac options 24 | javac.compilerargs= 25 | javac.deprecation=false 26 | javac.source=1.6 27 | javac.target=1.6 28 | javac.test.classpath=\ 29 | ${javac.classpath}:\ 30 | ${build.classes.dir}:\ 31 | ${libs.junit.classpath} 32 | javadoc.additionalparam= 33 | javadoc.author=false 34 | javadoc.encoding= 35 | javadoc.noindex=false 36 | javadoc.nonavbar=false 37 | javadoc.notree=false 38 | javadoc.private=false 39 | javadoc.splitindex=true 40 | javadoc.use=true 41 | javadoc.version=false 42 | javadoc.windowtitle= 43 | main.class=Main 44 | manifest.file=manifest.mf 45 | meta.inf.dir=${src.dir}/META-INF 46 | platform.active=default_platform 47 | run.classpath=\ 48 | ${javac.classpath}:\ 49 | ${build.classes.dir} 50 | # Space-separated list of JVM arguments used when running the project 51 | # (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value 52 | # or test-sys-prop.name=value to set system properties for unit tests): 53 | run.jvmargs= 54 | run.test.classpath=\ 55 | ${javac.test.classpath}:\ 56 | ${build.test.classes.dir} 57 | src.dir=src 58 | test.src.dir=test 59 | -------------------------------------------------------------------------------- /GameServer/nbproject/project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.netbeans.modules.java.j2seproject 4 | 5 | 6 | GameServer 7 | 1.6.5 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /GameServer/src/Main.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameServer/src/Main.java -------------------------------------------------------------------------------- /GameServer/src/Protocol.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameServer/src/Protocol.java -------------------------------------------------------------------------------- /GameServer/src/Server.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameServer/src/Server.java -------------------------------------------------------------------------------- /GameServer/src/ServerGUI.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtala3t/Tanks-Java-2D-Multiplayer-Game/c6e737ef0b3af0cbc0e6ebe263eafc3d1440a3ff/GameServer/src/ServerGUI.java -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Tanks-Java-2D-Multiplayer-Game 2 | 3 | This is a simple Java 2D Multiplayer Tanks Game using sockets. It is a client/server game. 4 | 5 | The game is diveded into two seperate projects, one for the game server and one for the game client. 6 | 7 | The used IDE is netbeans (I uploaded all project artifacts), also the game executable JAR (client and server) files are uploaded. 8 | 9 | If you have any questions or want to continue this project feel free to do so :) 10 | 11 | Please visit my website. http://www.mohamedtalaat.net/ 12 | --------------------------------------------------------------------------------