tank_island 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +14 -0
  3. data/.ruby-version +1 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE +22 -0
  6. data/README.md +58 -0
  7. data/Rakefile +2 -0
  8. data/bin/tank_island +30 -0
  9. data/lib/entities/box.rb +28 -0
  10. data/lib/entities/bullet.rb +26 -0
  11. data/lib/entities/camera.rb +113 -0
  12. data/lib/entities/components/ai/gun.rb +114 -0
  13. data/lib/entities/components/ai/tank_chasing_state.rb +30 -0
  14. data/lib/entities/components/ai/tank_fighting_state.rb +47 -0
  15. data/lib/entities/components/ai/tank_fleeing_state.rb +50 -0
  16. data/lib/entities/components/ai/tank_motion_fsm.rb +102 -0
  17. data/lib/entities/components/ai/tank_motion_state.rb +84 -0
  18. data/lib/entities/components/ai/tank_navigating_state.rb +34 -0
  19. data/lib/entities/components/ai/tank_roaming_state.rb +83 -0
  20. data/lib/entities/components/ai/tank_stuck_state.rb +45 -0
  21. data/lib/entities/components/ai/vision.rb +109 -0
  22. data/lib/entities/components/ai_input.rb +70 -0
  23. data/lib/entities/components/box_graphics.rb +39 -0
  24. data/lib/entities/components/bullet_graphics.rb +13 -0
  25. data/lib/entities/components/bullet_physics.rb +65 -0
  26. data/lib/entities/components/bullet_sounds.rb +15 -0
  27. data/lib/entities/components/component.rb +32 -0
  28. data/lib/entities/components/damage_graphics.rb +20 -0
  29. data/lib/entities/components/explosion_graphics.rb +43 -0
  30. data/lib/entities/components/explosion_sounds.rb +16 -0
  31. data/lib/entities/components/health.rb +87 -0
  32. data/lib/entities/components/player_input.rb +100 -0
  33. data/lib/entities/components/player_sounds.rb +16 -0
  34. data/lib/entities/components/powerup_graphics.rb +22 -0
  35. data/lib/entities/components/powerup_sounds.rb +15 -0
  36. data/lib/entities/components/tank_graphics.rb +46 -0
  37. data/lib/entities/components/tank_health.rb +32 -0
  38. data/lib/entities/components/tank_physics.rb +179 -0
  39. data/lib/entities/components/tank_sounds.rb +43 -0
  40. data/lib/entities/components/tree_graphics.rb +69 -0
  41. data/lib/entities/damage.rb +26 -0
  42. data/lib/entities/explosion.rb +34 -0
  43. data/lib/entities/game_object.rb +54 -0
  44. data/lib/entities/hud.rb +79 -0
  45. data/lib/entities/map.rb +183 -0
  46. data/lib/entities/object_pool.rb +59 -0
  47. data/lib/entities/powerups/fire_rate_powerup.rb +14 -0
  48. data/lib/entities/powerups/health_powerup.rb +12 -0
  49. data/lib/entities/powerups/powerup.rb +35 -0
  50. data/lib/entities/powerups/powerup_respawn_queue.rb +23 -0
  51. data/lib/entities/powerups/repair_powerup.rb +14 -0
  52. data/lib/entities/powerups/tank_speed_powerup.rb +14 -0
  53. data/lib/entities/radar.rb +62 -0
  54. data/lib/entities/score_display.rb +35 -0
  55. data/lib/entities/tank.rb +64 -0
  56. data/lib/entities/tree.rb +18 -0
  57. data/lib/game_states/demo_state.rb +49 -0
  58. data/lib/game_states/game_state.rb +27 -0
  59. data/lib/game_states/menu_state.rb +60 -0
  60. data/lib/game_states/pause_state.rb +61 -0
  61. data/lib/game_states/play_state.rb +119 -0
  62. data/lib/misc/axis_aligned_bounding_box.rb +33 -0
  63. data/lib/misc/game_window.rb +30 -0
  64. data/lib/misc/names.rb +13 -0
  65. data/lib/misc/quad_tree.rb +91 -0
  66. data/lib/misc/stats.rb +55 -0
  67. data/lib/misc/stereo_sample.rb +96 -0
  68. data/lib/misc/utils.rb +145 -0
  69. data/media/armalite_rifle.ttf +0 -0
  70. data/media/boxes_barrels.json +60 -0
  71. data/media/boxes_barrels.png +0 -0
  72. data/media/bullet.png +0 -0
  73. data/media/c_dot.png +0 -0
  74. data/media/country_field.png +0 -0
  75. data/media/crash.ogg +0 -0
  76. data/media/damage1.png +0 -0
  77. data/media/damage2.png +0 -0
  78. data/media/damage3.png +0 -0
  79. data/media/damage4.png +0 -0
  80. data/media/decor.json +516 -0
  81. data/media/decor.png +0 -0
  82. data/media/decor.psd +0 -0
  83. data/media/explosion.mp3 +0 -0
  84. data/media/explosion.png +0 -0
  85. data/media/fire.mp3 +0 -0
  86. data/media/ground.json +492 -0
  87. data/media/ground.png +0 -0
  88. data/media/ground_units.json +900 -0
  89. data/media/ground_units.png +0 -0
  90. data/media/menu_music.mp3 +0 -0
  91. data/media/metal_interaction2.wav +0 -0
  92. data/media/names.txt +279 -0
  93. data/media/pickups.json +68 -0
  94. data/media/pickups.png +0 -0
  95. data/media/powerup.mp3 +0 -0
  96. data/media/respawn.wav +0 -0
  97. data/media/tank_driving.mp3 +0 -0
  98. data/media/top_secret.ttf +0 -0
  99. data/media/trees.png +0 -0
  100. data/media/trees_packed.json +388 -0
  101. data/media/trees_packed.png +0 -0
  102. data/media/water.png +0 -0
  103. data/spec/misc/aabb_spec.rb +85 -0
  104. data/spec/misc/quad_tree_spec.rb +137 -0
  105. data/tank_island.gemspec +29 -0
  106. metadata +223 -0
Binary file
@@ -0,0 +1,900 @@
1
+ {"frames": {
2
+
3
+ "tank1_body.png":
4
+ {
5
+ "frame": {"x":278,"y":338,"w":34,"h":48},
6
+ "rotated": false,
7
+ "trimmed": false,
8
+ "spriteSourceSize": {"x":0,"y":0,"w":34,"h":48},
9
+ "sourceSize": {"w":34,"h":48}
10
+ },
11
+ "tank1_body_1b.png":
12
+ {
13
+ "frame": {"x":314,"y":382,"w":34,"h":48},
14
+ "rotated": false,
15
+ "trimmed": false,
16
+ "spriteSourceSize": {"x":0,"y":0,"w":34,"h":48},
17
+ "sourceSize": {"w":34,"h":48}
18
+ },
19
+ "tank1_body_destroyed.png":
20
+ {
21
+ "frame": {"x":322,"y":332,"w":34,"h":48},
22
+ "rotated": false,
23
+ "trimmed": false,
24
+ "spriteSourceSize": {"x":0,"y":0,"w":34,"h":48},
25
+ "sourceSize": {"w":34,"h":48}
26
+ },
27
+ "tank1_body_destroyed_shadow.png":
28
+ {
29
+ "frame": {"x":438,"y":346,"w":34,"h":48},
30
+ "rotated": false,
31
+ "trimmed": false,
32
+ "spriteSourceSize": {"x":0,"y":0,"w":34,"h":48},
33
+ "sourceSize": {"w":34,"h":48}
34
+ },
35
+ "tank1_body_hit.png":
36
+ {
37
+ "frame": {"x":366,"y":302,"w":34,"h":48},
38
+ "rotated": false,
39
+ "trimmed": false,
40
+ "spriteSourceSize": {"x":0,"y":0,"w":34,"h":48},
41
+ "sourceSize": {"w":34,"h":48}
42
+ },
43
+ "tank1_body_shadow.png":
44
+ {
45
+ "frame": {"x":402,"y":302,"w":34,"h":48},
46
+ "rotated": false,
47
+ "trimmed": false,
48
+ "spriteSourceSize": {"x":0,"y":0,"w":34,"h":48},
49
+ "sourceSize": {"w":34,"h":48}
50
+ },
51
+ "tank1_dualgun.png":
52
+ {
53
+ "frame": {"x":336,"y":244,"w":56,"h":56},
54
+ "rotated": false,
55
+ "trimmed": false,
56
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
57
+ "sourceSize": {"w":56,"h":56}
58
+ },
59
+ "tank1_dualgun_hit.png":
60
+ {
61
+ "frame": {"x":234,"y":196,"w":56,"h":56},
62
+ "rotated": false,
63
+ "trimmed": false,
64
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
65
+ "sourceSize": {"w":56,"h":56}
66
+ },
67
+ "tank1_gun.png":
68
+ {
69
+ "frame": {"x":176,"y":196,"w":56,"h":56},
70
+ "rotated": false,
71
+ "trimmed": false,
72
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
73
+ "sourceSize": {"w":56,"h":56}
74
+ },
75
+ "tank1_gun_destroyed-02.png":
76
+ {
77
+ "frame": {"x":60,"y":196,"w":56,"h":56},
78
+ "rotated": false,
79
+ "trimmed": false,
80
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
81
+ "sourceSize": {"w":56,"h":56}
82
+ },
83
+ "tank1_gun_destroyed.png":
84
+ {
85
+ "frame": {"x":118,"y":196,"w":56,"h":56},
86
+ "rotated": false,
87
+ "trimmed": false,
88
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
89
+ "sourceSize": {"w":56,"h":56}
90
+ },
91
+ "tank1_gun_hit.png":
92
+ {
93
+ "frame": {"x":2,"y":196,"w":56,"h":56},
94
+ "rotated": false,
95
+ "trimmed": false,
96
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
97
+ "sourceSize": {"w":56,"h":56}
98
+ },
99
+ "tank1_track.png":
100
+ {
101
+ "frame": {"x":394,"y":352,"w":34,"h":28},
102
+ "rotated": false,
103
+ "trimmed": false,
104
+ "spriteSourceSize": {"x":0,"y":0,"w":34,"h":28},
105
+ "sourceSize": {"w":34,"h":28}
106
+ },
107
+ "tank1b_body.png":
108
+ {
109
+ "frame": {"x":358,"y":352,"w":34,"h":48},
110
+ "rotated": false,
111
+ "trimmed": false,
112
+ "spriteSourceSize": {"x":0,"y":0,"w":34,"h":48},
113
+ "sourceSize": {"w":34,"h":48}
114
+ },
115
+ "tank1b_body_destroyed.png":
116
+ {
117
+ "frame": {"x":474,"y":346,"w":34,"h":48},
118
+ "rotated": false,
119
+ "trimmed": false,
120
+ "spriteSourceSize": {"x":0,"y":0,"w":34,"h":48},
121
+ "sourceSize": {"w":34,"h":48}
122
+ },
123
+ "tank1b_body_destroyed_shadow.png":
124
+ {
125
+ "frame": {"x":438,"y":346,"w":34,"h":48},
126
+ "rotated": false,
127
+ "trimmed": false,
128
+ "spriteSourceSize": {"x":0,"y":0,"w":34,"h":48},
129
+ "sourceSize": {"w":34,"h":48}
130
+ },
131
+ "tank1b_body_shadow.png":
132
+ {
133
+ "frame": {"x":402,"y":302,"w":34,"h":48},
134
+ "rotated": false,
135
+ "trimmed": false,
136
+ "spriteSourceSize": {"x":0,"y":0,"w":34,"h":48},
137
+ "sourceSize": {"w":34,"h":48}
138
+ },
139
+ "tank1b_dualgun.png":
140
+ {
141
+ "frame": {"x":176,"y":254,"w":56,"h":56},
142
+ "rotated": false,
143
+ "trimmed": false,
144
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
145
+ "sourceSize": {"w":56,"h":56}
146
+ },
147
+ "tank1b_dualgun_hit.png":
148
+ {
149
+ "frame": {"x":118,"y":254,"w":56,"h":56},
150
+ "rotated": false,
151
+ "trimmed": false,
152
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
153
+ "sourceSize": {"w":56,"h":56}
154
+ },
155
+ "tank1b_gun.png":
156
+ {
157
+ "frame": {"x":60,"y":254,"w":56,"h":56},
158
+ "rotated": false,
159
+ "trimmed": false,
160
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
161
+ "sourceSize": {"w":56,"h":56}
162
+ },
163
+ "tank1b_gun_destroyed-02.png":
164
+ {
165
+ "frame": {"x":452,"y":288,"w":56,"h":56},
166
+ "rotated": false,
167
+ "trimmed": false,
168
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
169
+ "sourceSize": {"w":56,"h":56}
170
+ },
171
+ "tank1b_gun_destroyed.png":
172
+ {
173
+ "frame": {"x":2,"y":254,"w":56,"h":56},
174
+ "rotated": false,
175
+ "trimmed": false,
176
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
177
+ "sourceSize": {"w":56,"h":56}
178
+ },
179
+ "tank1b_gun_hit.png":
180
+ {
181
+ "frame": {"x":394,"y":244,"w":56,"h":56},
182
+ "rotated": false,
183
+ "trimmed": false,
184
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
185
+ "sourceSize": {"w":56,"h":56}
186
+ },
187
+ "tank1b_track.png":
188
+ {
189
+ "frame": {"x":394,"y":382,"w":34,"h":28},
190
+ "rotated": false,
191
+ "trimmed": false,
192
+ "spriteSourceSize": {"x":0,"y":0,"w":34,"h":28},
193
+ "sourceSize": {"w":34,"h":28}
194
+ },
195
+ "tank2_body.png":
196
+ {
197
+ "frame": {"x":292,"y":138,"w":42,"h":48},
198
+ "rotated": false,
199
+ "trimmed": false,
200
+ "spriteSourceSize": {"x":0,"y":0,"w":42,"h":48},
201
+ "sourceSize": {"w":42,"h":48}
202
+ },
203
+ "tank2_body_destroyed.png":
204
+ {
205
+ "frame": {"x":458,"y":180,"w":42,"h":48},
206
+ "rotated": false,
207
+ "trimmed": false,
208
+ "spriteSourceSize": {"x":0,"y":0,"w":42,"h":48},
209
+ "sourceSize": {"w":42,"h":48}
210
+ },
211
+ "tank2_body_destroyed_shadow.png":
212
+ {
213
+ "frame": {"x":234,"y":254,"w":42,"h":48},
214
+ "rotated": false,
215
+ "trimmed": false,
216
+ "spriteSourceSize": {"x":0,"y":0,"w":42,"h":48},
217
+ "sourceSize": {"w":42,"h":48}
218
+ },
219
+ "tank2_body_hit.png":
220
+ {
221
+ "frame": {"x":458,"y":130,"w":42,"h":48},
222
+ "rotated": false,
223
+ "trimmed": false,
224
+ "spriteSourceSize": {"x":0,"y":0,"w":42,"h":48},
225
+ "sourceSize": {"w":42,"h":48}
226
+ },
227
+ "tank2_body_shadow.png":
228
+ {
229
+ "frame": {"x":292,"y":188,"w":42,"h":48},
230
+ "rotated": false,
231
+ "trimmed": false,
232
+ "spriteSourceSize": {"x":0,"y":0,"w":42,"h":48},
233
+ "sourceSize": {"w":42,"h":48}
234
+ },
235
+ "tank2_dualgun.png":
236
+ {
237
+ "frame": {"x":342,"y":2,"w":66,"h":66},
238
+ "rotated": false,
239
+ "trimmed": false,
240
+ "spriteSourceSize": {"x":0,"y":0,"w":66,"h":66},
241
+ "sourceSize": {"w":66,"h":66}
242
+ },
243
+ "tank2_dualgun_destroyed.png":
244
+ {
245
+ "frame": {"x":274,"y":2,"w":66,"h":66},
246
+ "rotated": false,
247
+ "trimmed": false,
248
+ "spriteSourceSize": {"x":0,"y":0,"w":66,"h":66},
249
+ "sourceSize": {"w":66,"h":66}
250
+ },
251
+ "tank2_dualgun_hit.png":
252
+ {
253
+ "frame": {"x":206,"y":2,"w":66,"h":66},
254
+ "rotated": false,
255
+ "trimmed": false,
256
+ "spriteSourceSize": {"x":0,"y":0,"w":66,"h":66},
257
+ "sourceSize": {"w":66,"h":66}
258
+ },
259
+ "tank2_gun.png":
260
+ {
261
+ "frame": {"x":138,"y":2,"w":66,"h":66},
262
+ "rotated": false,
263
+ "trimmed": false,
264
+ "spriteSourceSize": {"x":0,"y":0,"w":66,"h":66},
265
+ "sourceSize": {"w":66,"h":66}
266
+ },
267
+ "tank2_gun_destroyed.png":
268
+ {
269
+ "frame": {"x":70,"y":2,"w":66,"h":66},
270
+ "rotated": false,
271
+ "trimmed": false,
272
+ "spriteSourceSize": {"x":0,"y":0,"w":66,"h":66},
273
+ "sourceSize": {"w":66,"h":66}
274
+ },
275
+ "tank2_gun_hit.png":
276
+ {
277
+ "frame": {"x":2,"y":2,"w":66,"h":66},
278
+ "rotated": false,
279
+ "trimmed": false,
280
+ "spriteSourceSize": {"x":0,"y":0,"w":66,"h":66},
281
+ "sourceSize": {"w":66,"h":66}
282
+ },
283
+ "tank2_track.png":
284
+ {
285
+ "frame": {"x":322,"y":302,"w":42,"h":28},
286
+ "rotated": false,
287
+ "trimmed": false,
288
+ "spriteSourceSize": {"x":0,"y":0,"w":42,"h":28},
289
+ "sourceSize": {"w":42,"h":28}
290
+ },
291
+ "tank2b_body.png":
292
+ {
293
+ "frame": {"x":234,"y":304,"w":42,"h":48},
294
+ "rotated": false,
295
+ "trimmed": false,
296
+ "spriteSourceSize": {"x":0,"y":0,"w":42,"h":48},
297
+ "sourceSize": {"w":42,"h":48}
298
+ },
299
+ "tank2b_body_destroyed.png":
300
+ {
301
+ "frame": {"x":278,"y":288,"w":42,"h":48},
302
+ "rotated": false,
303
+ "trimmed": false,
304
+ "spriteSourceSize": {"x":0,"y":0,"w":42,"h":48},
305
+ "sourceSize": {"w":42,"h":48}
306
+ },
307
+ "tank2b_body_destroyed_shadow.png":
308
+ {
309
+ "frame": {"x":234,"y":254,"w":42,"h":48},
310
+ "rotated": false,
311
+ "trimmed": false,
312
+ "spriteSourceSize": {"x":0,"y":0,"w":42,"h":48},
313
+ "sourceSize": {"w":42,"h":48}
314
+ },
315
+ "tank2b_body_hit.png":
316
+ {
317
+ "frame": {"x":292,"y":238,"w":42,"h":48},
318
+ "rotated": false,
319
+ "trimmed": false,
320
+ "spriteSourceSize": {"x":0,"y":0,"w":42,"h":48},
321
+ "sourceSize": {"w":42,"h":48}
322
+ },
323
+ "tank2b_body_shadow.png":
324
+ {
325
+ "frame": {"x":292,"y":188,"w":42,"h":48},
326
+ "rotated": false,
327
+ "trimmed": false,
328
+ "spriteSourceSize": {"x":0,"y":0,"w":42,"h":48},
329
+ "sourceSize": {"w":42,"h":48}
330
+ },
331
+ "tank2b_dualgun.png":
332
+ {
333
+ "frame": {"x":274,"y":70,"w":66,"h":66},
334
+ "rotated": false,
335
+ "trimmed": false,
336
+ "spriteSourceSize": {"x":0,"y":0,"w":66,"h":66},
337
+ "sourceSize": {"w":66,"h":66}
338
+ },
339
+ "tank2b_dualgun_destroyed.png":
340
+ {
341
+ "frame": {"x":206,"y":70,"w":66,"h":66},
342
+ "rotated": false,
343
+ "trimmed": false,
344
+ "spriteSourceSize": {"x":0,"y":0,"w":66,"h":66},
345
+ "sourceSize": {"w":66,"h":66}
346
+ },
347
+ "tank2b_dualgun_hit.png":
348
+ {
349
+ "frame": {"x":138,"y":70,"w":66,"h":66},
350
+ "rotated": false,
351
+ "trimmed": false,
352
+ "spriteSourceSize": {"x":0,"y":0,"w":66,"h":66},
353
+ "sourceSize": {"w":66,"h":66}
354
+ },
355
+ "tank2b_gun.png":
356
+ {
357
+ "frame": {"x":70,"y":70,"w":66,"h":66},
358
+ "rotated": false,
359
+ "trimmed": false,
360
+ "spriteSourceSize": {"x":0,"y":0,"w":66,"h":66},
361
+ "sourceSize": {"w":66,"h":66}
362
+ },
363
+ "tank2b_gun_destroyed.png":
364
+ {
365
+ "frame": {"x":2,"y":70,"w":66,"h":66},
366
+ "rotated": false,
367
+ "trimmed": false,
368
+ "spriteSourceSize": {"x":0,"y":0,"w":66,"h":66},
369
+ "sourceSize": {"w":66,"h":66}
370
+ },
371
+ "tank2b_gun_hit.png":
372
+ {
373
+ "frame": {"x":410,"y":2,"w":66,"h":66},
374
+ "rotated": false,
375
+ "trimmed": false,
376
+ "spriteSourceSize": {"x":0,"y":0,"w":66,"h":66},
377
+ "sourceSize": {"w":66,"h":66}
378
+ },
379
+ "tank3_body.png":
380
+ {
381
+ "frame": {"x":58,"y":481,"w":26,"h":39},
382
+ "rotated": false,
383
+ "trimmed": false,
384
+ "spriteSourceSize": {"x":0,"y":0,"w":26,"h":39},
385
+ "sourceSize": {"w":26,"h":39}
386
+ },
387
+ "tank3_body_destroyed.png":
388
+ {
389
+ "frame": {"x":30,"y":481,"w":26,"h":39},
390
+ "rotated": false,
391
+ "trimmed": false,
392
+ "spriteSourceSize": {"x":0,"y":0,"w":26,"h":39},
393
+ "sourceSize": {"w":26,"h":39}
394
+ },
395
+ "tank3_body_destroyed_shadow.png":
396
+ {
397
+ "frame": {"x":2,"y":481,"w":26,"h":39},
398
+ "rotated": false,
399
+ "trimmed": false,
400
+ "spriteSourceSize": {"x":0,"y":0,"w":26,"h":39},
401
+ "sourceSize": {"w":26,"h":39}
402
+ },
403
+ "tank3_body_hit.png":
404
+ {
405
+ "frame": {"x":198,"y":440,"w":26,"h":39},
406
+ "rotated": false,
407
+ "trimmed": false,
408
+ "spriteSourceSize": {"x":0,"y":0,"w":26,"h":39},
409
+ "sourceSize": {"w":26,"h":39}
410
+ },
411
+ "tank3_body_shadow.png":
412
+ {
413
+ "frame": {"x":170,"y":440,"w":26,"h":39},
414
+ "rotated": false,
415
+ "trimmed": false,
416
+ "spriteSourceSize": {"x":0,"y":0,"w":26,"h":39},
417
+ "sourceSize": {"w":26,"h":39}
418
+ },
419
+ "tank3_gun.png":
420
+ {
421
+ "frame": {"x":452,"y":230,"w":56,"h":56},
422
+ "rotated": false,
423
+ "trimmed": false,
424
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
425
+ "sourceSize": {"w":56,"h":56}
426
+ },
427
+ "tank3_gun_destroyed.png":
428
+ {
429
+ "frame": {"x":394,"y":186,"w":56,"h":56},
430
+ "rotated": false,
431
+ "trimmed": false,
432
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
433
+ "sourceSize": {"w":56,"h":56}
434
+ },
435
+ "tank3_gun_hit.png":
436
+ {
437
+ "frame": {"x":336,"y":186,"w":56,"h":56},
438
+ "rotated": false,
439
+ "trimmed": false,
440
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
441
+ "sourceSize": {"w":56,"h":56}
442
+ },
443
+ "tank3_track.png":
444
+ {
445
+ "frame": {"x":290,"y":478,"w":22,"h":28},
446
+ "rotated": false,
447
+ "trimmed": false,
448
+ "spriteSourceSize": {"x":0,"y":0,"w":22,"h":28},
449
+ "sourceSize": {"w":22,"h":28}
450
+ },
451
+ "tank3b_body.png":
452
+ {
453
+ "frame": {"x":142,"y":440,"w":26,"h":39},
454
+ "rotated": false,
455
+ "trimmed": false,
456
+ "spriteSourceSize": {"x":0,"y":0,"w":26,"h":39},
457
+ "sourceSize": {"w":26,"h":39}
458
+ },
459
+ "tank3b_body_destroyed.png":
460
+ {
461
+ "frame": {"x":114,"y":440,"w":26,"h":39},
462
+ "rotated": false,
463
+ "trimmed": false,
464
+ "spriteSourceSize": {"x":0,"y":0,"w":26,"h":39},
465
+ "sourceSize": {"w":26,"h":39}
466
+ },
467
+ "tank3b_body_hit.png":
468
+ {
469
+ "frame": {"x":86,"y":440,"w":26,"h":39},
470
+ "rotated": false,
471
+ "trimmed": false,
472
+ "spriteSourceSize": {"x":0,"y":0,"w":26,"h":39},
473
+ "sourceSize": {"w":26,"h":39}
474
+ },
475
+ "tank3b_gun.png":
476
+ {
477
+ "frame": {"x":234,"y":138,"w":56,"h":56},
478
+ "rotated": false,
479
+ "trimmed": false,
480
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
481
+ "sourceSize": {"w":56,"h":56}
482
+ },
483
+ "tank3b_gun_destroyed.png":
484
+ {
485
+ "frame": {"x":176,"y":138,"w":56,"h":56},
486
+ "rotated": false,
487
+ "trimmed": false,
488
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
489
+ "sourceSize": {"w":56,"h":56}
490
+ },
491
+ "tank3b_gun_hit.png":
492
+ {
493
+ "frame": {"x":118,"y":138,"w":56,"h":56},
494
+ "rotated": false,
495
+ "trimmed": false,
496
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
497
+ "sourceSize": {"w":56,"h":56}
498
+ },
499
+ "tank3b_track.png":
500
+ {
501
+ "frame": {"x":290,"y":448,"w":22,"h":28},
502
+ "rotated": false,
503
+ "trimmed": false,
504
+ "spriteSourceSize": {"x":0,"y":0,"w":22,"h":28},
505
+ "sourceSize": {"w":22,"h":28}
506
+ },
507
+ "tank3c_body.png":
508
+ {
509
+ "frame": {"x":58,"y":440,"w":26,"h":39},
510
+ "rotated": false,
511
+ "trimmed": false,
512
+ "spriteSourceSize": {"x":0,"y":0,"w":26,"h":39},
513
+ "sourceSize": {"w":26,"h":39}
514
+ },
515
+ "tank3c_body_destroyed.png":
516
+ {
517
+ "frame": {"x":30,"y":440,"w":26,"h":39},
518
+ "rotated": false,
519
+ "trimmed": false,
520
+ "spriteSourceSize": {"x":0,"y":0,"w":26,"h":39},
521
+ "sourceSize": {"w":26,"h":39}
522
+ },
523
+ "tank3c_body_hit.png":
524
+ {
525
+ "frame": {"x":2,"y":440,"w":26,"h":39},
526
+ "rotated": false,
527
+ "trimmed": false,
528
+ "spriteSourceSize": {"x":0,"y":0,"w":26,"h":39},
529
+ "sourceSize": {"w":26,"h":39}
530
+ },
531
+ "tank3c_gun.png":
532
+ {
533
+ "frame": {"x":60,"y":138,"w":56,"h":56},
534
+ "rotated": false,
535
+ "trimmed": false,
536
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
537
+ "sourceSize": {"w":56,"h":56}
538
+ },
539
+ "tank3c_gun_destroyed.png":
540
+ {
541
+ "frame": {"x":2,"y":138,"w":56,"h":56},
542
+ "rotated": false,
543
+ "trimmed": false,
544
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
545
+ "sourceSize": {"w":56,"h":56}
546
+ },
547
+ "tank3c_gun_hit.png":
548
+ {
549
+ "frame": {"x":400,"y":128,"w":56,"h":56},
550
+ "rotated": false,
551
+ "trimmed": false,
552
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
553
+ "sourceSize": {"w":56,"h":56}
554
+ },
555
+ "tank3c_track.png":
556
+ {
557
+ "frame": {"x":290,"y":418,"w":22,"h":28},
558
+ "rotated": false,
559
+ "trimmed": false,
560
+ "spriteSourceSize": {"x":0,"y":0,"w":22,"h":28},
561
+ "sourceSize": {"w":22,"h":28}
562
+ },
563
+ "tank3d_body.png":
564
+ {
565
+ "frame": {"x":370,"y":540,"w":26,"h":39},
566
+ "rotated": false,
567
+ "trimmed": false,
568
+ "spriteSourceSize": {"x":0,"y":0,"w":26,"h":39},
569
+ "sourceSize": {"w":26,"h":39}
570
+ },
571
+ "tank3d_body_destroyed.png":
572
+ {
573
+ "frame": {"x":342,"y":530,"w":26,"h":39},
574
+ "rotated": false,
575
+ "trimmed": false,
576
+ "spriteSourceSize": {"x":0,"y":0,"w":26,"h":39},
577
+ "sourceSize": {"w":26,"h":39}
578
+ },
579
+ "tank3d_body_hit.png":
580
+ {
581
+ "frame": {"x":314,"y":496,"w":26,"h":39},
582
+ "rotated": false,
583
+ "trimmed": false,
584
+ "spriteSourceSize": {"x":0,"y":0,"w":26,"h":39},
585
+ "sourceSize": {"w":26,"h":39}
586
+ },
587
+ "tank3d_gun.png":
588
+ {
589
+ "frame": {"x":342,"y":128,"w":56,"h":56},
590
+ "rotated": false,
591
+ "trimmed": false,
592
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
593
+ "sourceSize": {"w":56,"h":56}
594
+ },
595
+ "tank3d_gun_destroyed.png":
596
+ {
597
+ "frame": {"x":400,"y":70,"w":56,"h":56},
598
+ "rotated": false,
599
+ "trimmed": false,
600
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
601
+ "sourceSize": {"w":56,"h":56}
602
+ },
603
+ "tank3d_gun_hit.png":
604
+ {
605
+ "frame": {"x":342,"y":70,"w":56,"h":56},
606
+ "rotated": false,
607
+ "trimmed": false,
608
+ "spriteSourceSize": {"x":0,"y":0,"w":56,"h":56},
609
+ "sourceSize": {"w":56,"h":56}
610
+ },
611
+ "tank3d_track.png":
612
+ {
613
+ "frame": {"x":290,"y":388,"w":22,"h":28},
614
+ "rotated": false,
615
+ "trimmed": false,
616
+ "spriteSourceSize": {"x":0,"y":0,"w":22,"h":28},
617
+ "sourceSize": {"w":22,"h":28}
618
+ },
619
+ "truck1_body.png":
620
+ {
621
+ "frame": {"x":258,"y":452,"w":30,"h":62},
622
+ "rotated": false,
623
+ "trimmed": false,
624
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
625
+ "sourceSize": {"w":30,"h":62}
626
+ },
627
+ "truck1_body_hit.png":
628
+ {
629
+ "frame": {"x":226,"y":418,"w":30,"h":62},
630
+ "rotated": false,
631
+ "trimmed": false,
632
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
633
+ "sourceSize": {"w":30,"h":62}
634
+ },
635
+ "truck1_body_shadow.png":
636
+ {
637
+ "frame": {"x":194,"y":376,"w":30,"h":62},
638
+ "rotated": false,
639
+ "trimmed": false,
640
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
641
+ "sourceSize": {"w":30,"h":62}
642
+ },
643
+ "truck1_destroyed.png":
644
+ {
645
+ "frame": {"x":162,"y":376,"w":30,"h":62},
646
+ "rotated": false,
647
+ "trimmed": false,
648
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
649
+ "sourceSize": {"w":30,"h":62}
650
+ },
651
+ "truck1_destroyed_shadow.png":
652
+ {
653
+ "frame": {"x":130,"y":376,"w":30,"h":62},
654
+ "rotated": false,
655
+ "trimmed": false,
656
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
657
+ "sourceSize": {"w":30,"h":62}
658
+ },
659
+ "truck1b_body.png":
660
+ {
661
+ "frame": {"x":98,"y":376,"w":30,"h":62},
662
+ "rotated": false,
663
+ "trimmed": false,
664
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
665
+ "sourceSize": {"w":30,"h":62}
666
+ },
667
+ "truck1b_body_hit.png":
668
+ {
669
+ "frame": {"x":66,"y":376,"w":30,"h":62},
670
+ "rotated": false,
671
+ "trimmed": false,
672
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
673
+ "sourceSize": {"w":30,"h":62}
674
+ },
675
+ "truck1b_destroyed.png":
676
+ {
677
+ "frame": {"x":34,"y":376,"w":30,"h":62},
678
+ "rotated": false,
679
+ "trimmed": false,
680
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
681
+ "sourceSize": {"w":30,"h":62}
682
+ },
683
+ "truck1c_body.png":
684
+ {
685
+ "frame": {"x":2,"y":376,"w":30,"h":62},
686
+ "rotated": false,
687
+ "trimmed": false,
688
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
689
+ "sourceSize": {"w":30,"h":62}
690
+ },
691
+ "truck1c_body_hit.png":
692
+ {
693
+ "frame": {"x":474,"y":524,"w":30,"h":62},
694
+ "rotated": false,
695
+ "trimmed": false,
696
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
697
+ "sourceSize": {"w":30,"h":62}
698
+ },
699
+ "truck1c_destroyed.png":
700
+ {
701
+ "frame": {"x":442,"y":524,"w":30,"h":62},
702
+ "rotated": false,
703
+ "trimmed": false,
704
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
705
+ "sourceSize": {"w":30,"h":62}
706
+ },
707
+ "truck2_body.png":
708
+ {
709
+ "frame": {"x":410,"y":524,"w":30,"h":62},
710
+ "rotated": false,
711
+ "trimmed": false,
712
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
713
+ "sourceSize": {"w":30,"h":62}
714
+ },
715
+ "truck2_body_hit.png":
716
+ {
717
+ "frame": {"x":378,"y":476,"w":30,"h":62},
718
+ "rotated": false,
719
+ "trimmed": false,
720
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
721
+ "sourceSize": {"w":30,"h":62}
722
+ },
723
+ "truck2_body_shadow.png":
724
+ {
725
+ "frame": {"x":346,"y":466,"w":30,"h":62},
726
+ "rotated": false,
727
+ "trimmed": false,
728
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
729
+ "sourceSize": {"w":30,"h":62}
730
+ },
731
+ "truck2_destroyed.png":
732
+ {
733
+ "frame": {"x":314,"y":432,"w":30,"h":62},
734
+ "rotated": false,
735
+ "trimmed": false,
736
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
737
+ "sourceSize": {"w":30,"h":62}
738
+ },
739
+ "truck2_destroyed_shadow.png":
740
+ {
741
+ "frame": {"x":258,"y":388,"w":30,"h":62},
742
+ "rotated": false,
743
+ "trimmed": false,
744
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
745
+ "sourceSize": {"w":30,"h":62}
746
+ },
747
+ "truck2b_body.png":
748
+ {
749
+ "frame": {"x":226,"y":354,"w":30,"h":62},
750
+ "rotated": false,
751
+ "trimmed": false,
752
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
753
+ "sourceSize": {"w":30,"h":62}
754
+ },
755
+ "truck2b_body_hit.png":
756
+ {
757
+ "frame": {"x":194,"y":312,"w":30,"h":62},
758
+ "rotated": false,
759
+ "trimmed": false,
760
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
761
+ "sourceSize": {"w":30,"h":62}
762
+ },
763
+ "truck2b_destroyed.png":
764
+ {
765
+ "frame": {"x":162,"y":312,"w":30,"h":62},
766
+ "rotated": false,
767
+ "trimmed": false,
768
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
769
+ "sourceSize": {"w":30,"h":62}
770
+ },
771
+ "truck2c_body.png":
772
+ {
773
+ "frame": {"x":130,"y":312,"w":30,"h":62},
774
+ "rotated": false,
775
+ "trimmed": false,
776
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
777
+ "sourceSize": {"w":30,"h":62}
778
+ },
779
+ "truck2c_body_hit.png":
780
+ {
781
+ "frame": {"x":98,"y":312,"w":30,"h":62},
782
+ "rotated": false,
783
+ "trimmed": false,
784
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
785
+ "sourceSize": {"w":30,"h":62}
786
+ },
787
+ "truck2c_destroyed.png":
788
+ {
789
+ "frame": {"x":66,"y":312,"w":30,"h":62},
790
+ "rotated": false,
791
+ "trimmed": false,
792
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
793
+ "sourceSize": {"w":30,"h":62}
794
+ },
795
+ "truck3_body.png":
796
+ {
797
+ "frame": {"x":34,"y":312,"w":30,"h":62},
798
+ "rotated": false,
799
+ "trimmed": false,
800
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
801
+ "sourceSize": {"w":30,"h":62}
802
+ },
803
+ "truck3_body_hit.png":
804
+ {
805
+ "frame": {"x":2,"y":312,"w":30,"h":62},
806
+ "rotated": false,
807
+ "trimmed": false,
808
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
809
+ "sourceSize": {"w":30,"h":62}
810
+ },
811
+ "truck3_body_shadow.png":
812
+ {
813
+ "frame": {"x":478,"y":460,"w":30,"h":62},
814
+ "rotated": false,
815
+ "trimmed": false,
816
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
817
+ "sourceSize": {"w":30,"h":62}
818
+ },
819
+ "truck3_destroyed.png":
820
+ {
821
+ "frame": {"x":446,"y":460,"w":30,"h":62},
822
+ "rotated": false,
823
+ "trimmed": false,
824
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
825
+ "sourceSize": {"w":30,"h":62}
826
+ },
827
+ "truck3_destroyed_shadow.png":
828
+ {
829
+ "frame": {"x":414,"y":460,"w":30,"h":62},
830
+ "rotated": false,
831
+ "trimmed": false,
832
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
833
+ "sourceSize": {"w":30,"h":62}
834
+ },
835
+ "truck3b_body.png":
836
+ {
837
+ "frame": {"x":462,"y":396,"w":30,"h":62},
838
+ "rotated": false,
839
+ "trimmed": false,
840
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
841
+ "sourceSize": {"w":30,"h":62}
842
+ },
843
+ "truck3b_body_hit.png":
844
+ {
845
+ "frame": {"x":382,"y":412,"w":30,"h":62},
846
+ "rotated": false,
847
+ "trimmed": false,
848
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
849
+ "sourceSize": {"w":30,"h":62}
850
+ },
851
+ "truck3b_destroyed.png":
852
+ {
853
+ "frame": {"x":430,"y":396,"w":30,"h":62},
854
+ "rotated": false,
855
+ "trimmed": false,
856
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
857
+ "sourceSize": {"w":30,"h":62}
858
+ },
859
+ "truck3c_body.png":
860
+ {
861
+ "frame": {"x":350,"y":402,"w":30,"h":62},
862
+ "rotated": false,
863
+ "trimmed": false,
864
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
865
+ "sourceSize": {"w":30,"h":62}
866
+ },
867
+ "truck3c_body_hit.png":
868
+ {
869
+ "frame": {"x":478,"y":66,"w":30,"h":62},
870
+ "rotated": false,
871
+ "trimmed": false,
872
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
873
+ "sourceSize": {"w":30,"h":62}
874
+ },
875
+ "truck3c_destroyed.png":
876
+ {
877
+ "frame": {"x":478,"y":2,"w":30,"h":62},
878
+ "rotated": false,
879
+ "trimmed": false,
880
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":62},
881
+ "sourceSize": {"w":30,"h":62}
882
+ },
883
+ "truck_track.png":
884
+ {
885
+ "frame": {"x":86,"y":481,"w":24,"h":23},
886
+ "rotated": false,
887
+ "trimmed": false,
888
+ "spriteSourceSize": {"x":0,"y":0,"w":24,"h":23},
889
+ "sourceSize": {"w":24,"h":23}
890
+ }},
891
+ "meta": {
892
+ "app": "http://www.texturepacker.com",
893
+ "version": "1.0",
894
+ "image": "ground_units.png",
895
+ "format": "RGBA8888",
896
+ "size": {"w":512,"h":1024},
897
+ "scale": "1",
898
+ "smartupdate": "$TexturePacker:SmartUpdate:0da088f23b1454869c6ff25aabebeda2$"
899
+ }
900
+ }