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
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,492 @@
1
+ {"frames": {
2
+
3
+ "beach_bl.png":
4
+ {
5
+ "frame": {"x":896,"y":640,"w":128,"h":128},
6
+ "rotated": false,
7
+ "trimmed": false,
8
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
9
+ "sourceSize": {"w":128,"h":128}
10
+ },
11
+ "beach_bl_grass.png":
12
+ {
13
+ "frame": {"x":768,"y":640,"w":128,"h":128},
14
+ "rotated": false,
15
+ "trimmed": false,
16
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
17
+ "sourceSize": {"w":128,"h":128}
18
+ },
19
+ "beach_bm_01.png":
20
+ {
21
+ "frame": {"x":640,"y":896,"w":128,"h":128},
22
+ "rotated": false,
23
+ "trimmed": false,
24
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
25
+ "sourceSize": {"w":128,"h":128}
26
+ },
27
+ "beach_bm_01_grass.png":
28
+ {
29
+ "frame": {"x":640,"y":768,"w":128,"h":128},
30
+ "rotated": false,
31
+ "trimmed": false,
32
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
33
+ "sourceSize": {"w":128,"h":128}
34
+ },
35
+ "beach_bm_02.png":
36
+ {
37
+ "frame": {"x":640,"y":640,"w":128,"h":128},
38
+ "rotated": false,
39
+ "trimmed": false,
40
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
41
+ "sourceSize": {"w":128,"h":128}
42
+ },
43
+ "beach_bm_02_grass.png":
44
+ {
45
+ "frame": {"x":896,"y":512,"w":128,"h":128},
46
+ "rotated": false,
47
+ "trimmed": false,
48
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
49
+ "sourceSize": {"w":128,"h":128}
50
+ },
51
+ "beach_bm_03.png":
52
+ {
53
+ "frame": {"x":768,"y":512,"w":128,"h":128},
54
+ "rotated": false,
55
+ "trimmed": false,
56
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
57
+ "sourceSize": {"w":128,"h":128}
58
+ },
59
+ "beach_bm_03_grass.png":
60
+ {
61
+ "frame": {"x":640,"y":512,"w":128,"h":128},
62
+ "rotated": false,
63
+ "trimmed": false,
64
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
65
+ "sourceSize": {"w":128,"h":128}
66
+ },
67
+ "beach_bm_04.png":
68
+ {
69
+ "frame": {"x":512,"y":896,"w":128,"h":128},
70
+ "rotated": false,
71
+ "trimmed": false,
72
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
73
+ "sourceSize": {"w":128,"h":128}
74
+ },
75
+ "beach_bm_04_grass.png":
76
+ {
77
+ "frame": {"x":512,"y":768,"w":128,"h":128},
78
+ "rotated": false,
79
+ "trimmed": false,
80
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
81
+ "sourceSize": {"w":128,"h":128}
82
+ },
83
+ "beach_bm_05.png":
84
+ {
85
+ "frame": {"x":512,"y":640,"w":128,"h":128},
86
+ "rotated": false,
87
+ "trimmed": false,
88
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
89
+ "sourceSize": {"w":128,"h":128}
90
+ },
91
+ "beach_bm_05_grass.png":
92
+ {
93
+ "frame": {"x":512,"y":512,"w":128,"h":128},
94
+ "rotated": false,
95
+ "trimmed": false,
96
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
97
+ "sourceSize": {"w":128,"h":128}
98
+ },
99
+ "beach_br.png":
100
+ {
101
+ "frame": {"x":896,"y":384,"w":128,"h":128},
102
+ "rotated": false,
103
+ "trimmed": false,
104
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
105
+ "sourceSize": {"w":128,"h":128}
106
+ },
107
+ "beach_br_grass.png":
108
+ {
109
+ "frame": {"x":768,"y":384,"w":128,"h":128},
110
+ "rotated": false,
111
+ "trimmed": false,
112
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
113
+ "sourceSize": {"w":128,"h":128}
114
+ },
115
+ "beach_l_up_diagonal.png":
116
+ {
117
+ "frame": {"x":640,"y":384,"w":128,"h":128},
118
+ "rotated": false,
119
+ "trimmed": false,
120
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
121
+ "sourceSize": {"w":128,"h":128}
122
+ },
123
+ "beach_l_up_diagonal_grass.png":
124
+ {
125
+ "frame": {"x":512,"y":384,"w":128,"h":128},
126
+ "rotated": false,
127
+ "trimmed": false,
128
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
129
+ "sourceSize": {"w":128,"h":128}
130
+ },
131
+ "beach_l_up_diagonal_neighbour.png":
132
+ {
133
+ "frame": {"x":384,"y":896,"w":128,"h":128},
134
+ "rotated": false,
135
+ "trimmed": false,
136
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
137
+ "sourceSize": {"w":128,"h":128}
138
+ },
139
+ "beach_l_up_diagonal_neighbour_grass.png":
140
+ {
141
+ "frame": {"x":384,"y":768,"w":128,"h":128},
142
+ "rotated": false,
143
+ "trimmed": false,
144
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
145
+ "sourceSize": {"w":128,"h":128}
146
+ },
147
+ "beach_lm_01.png":
148
+ {
149
+ "frame": {"x":384,"y":640,"w":128,"h":128},
150
+ "rotated": false,
151
+ "trimmed": false,
152
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
153
+ "sourceSize": {"w":128,"h":128}
154
+ },
155
+ "beach_lm_01_grass.png":
156
+ {
157
+ "frame": {"x":384,"y":512,"w":128,"h":128},
158
+ "rotated": false,
159
+ "trimmed": false,
160
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
161
+ "sourceSize": {"w":128,"h":128}
162
+ },
163
+ "beach_lm_02.png":
164
+ {
165
+ "frame": {"x":384,"y":384,"w":128,"h":128},
166
+ "rotated": false,
167
+ "trimmed": false,
168
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
169
+ "sourceSize": {"w":128,"h":128}
170
+ },
171
+ "beach_lm_02_grass.png":
172
+ {
173
+ "frame": {"x":896,"y":256,"w":128,"h":128},
174
+ "rotated": false,
175
+ "trimmed": false,
176
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
177
+ "sourceSize": {"w":128,"h":128}
178
+ },
179
+ "beach_lm_03.png":
180
+ {
181
+ "frame": {"x":768,"y":256,"w":128,"h":128},
182
+ "rotated": false,
183
+ "trimmed": false,
184
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
185
+ "sourceSize": {"w":128,"h":128}
186
+ },
187
+ "beach_lm_03_grass.png":
188
+ {
189
+ "frame": {"x":640,"y":256,"w":128,"h":128},
190
+ "rotated": false,
191
+ "trimmed": false,
192
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
193
+ "sourceSize": {"w":128,"h":128}
194
+ },
195
+ "beach_lm_04.png":
196
+ {
197
+ "frame": {"x":512,"y":256,"w":128,"h":128},
198
+ "rotated": false,
199
+ "trimmed": false,
200
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
201
+ "sourceSize": {"w":128,"h":128}
202
+ },
203
+ "beach_lm_04_grass.png":
204
+ {
205
+ "frame": {"x":384,"y":256,"w":128,"h":128},
206
+ "rotated": false,
207
+ "trimmed": false,
208
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
209
+ "sourceSize": {"w":128,"h":128}
210
+ },
211
+ "beach_r_diagonal_neighbour.png":
212
+ {
213
+ "frame": {"x":256,"y":896,"w":128,"h":128},
214
+ "rotated": false,
215
+ "trimmed": false,
216
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
217
+ "sourceSize": {"w":128,"h":128}
218
+ },
219
+ "beach_r_diagonal_neighbour_grass.png":
220
+ {
221
+ "frame": {"x":256,"y":768,"w":128,"h":128},
222
+ "rotated": false,
223
+ "trimmed": false,
224
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
225
+ "sourceSize": {"w":128,"h":128}
226
+ },
227
+ "beach_r_down_diagonal.png":
228
+ {
229
+ "frame": {"x":256,"y":640,"w":128,"h":128},
230
+ "rotated": false,
231
+ "trimmed": false,
232
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
233
+ "sourceSize": {"w":128,"h":128}
234
+ },
235
+ "beach_r_down_diagonal_grass.png":
236
+ {
237
+ "frame": {"x":256,"y":512,"w":128,"h":128},
238
+ "rotated": false,
239
+ "trimmed": false,
240
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
241
+ "sourceSize": {"w":128,"h":128}
242
+ },
243
+ "beach_r_down_diagonal_neighbour.png":
244
+ {
245
+ "frame": {"x":256,"y":384,"w":128,"h":128},
246
+ "rotated": false,
247
+ "trimmed": false,
248
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
249
+ "sourceSize": {"w":128,"h":128}
250
+ },
251
+ "beach_r_down_diagonal_neighbour_grass.png":
252
+ {
253
+ "frame": {"x":256,"y":256,"w":128,"h":128},
254
+ "rotated": false,
255
+ "trimmed": false,
256
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
257
+ "sourceSize": {"w":128,"h":128}
258
+ },
259
+ "beach_r_up_diagonal.png":
260
+ {
261
+ "frame": {"x":896,"y":128,"w":128,"h":128},
262
+ "rotated": false,
263
+ "trimmed": false,
264
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
265
+ "sourceSize": {"w":128,"h":128}
266
+ },
267
+ "beach_r_up_diagonal_grass.png":
268
+ {
269
+ "frame": {"x":768,"y":128,"w":128,"h":128},
270
+ "rotated": false,
271
+ "trimmed": false,
272
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
273
+ "sourceSize": {"w":128,"h":128}
274
+ },
275
+ "beach_rm_01-22.png":
276
+ {
277
+ "frame": {"x":256,"y":128,"w":128,"h":128},
278
+ "rotated": false,
279
+ "trimmed": false,
280
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
281
+ "sourceSize": {"w":128,"h":128}
282
+ },
283
+ "beach_rm_01.png":
284
+ {
285
+ "frame": {"x":640,"y":128,"w":128,"h":128},
286
+ "rotated": false,
287
+ "trimmed": false,
288
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
289
+ "sourceSize": {"w":128,"h":128}
290
+ },
291
+ "beach_rm_01_grass-22.png":
292
+ {
293
+ "frame": {"x":384,"y":128,"w":128,"h":128},
294
+ "rotated": false,
295
+ "trimmed": false,
296
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
297
+ "sourceSize": {"w":128,"h":128}
298
+ },
299
+ "beach_rm_01_grass.png":
300
+ {
301
+ "frame": {"x":512,"y":128,"w":128,"h":128},
302
+ "rotated": false,
303
+ "trimmed": false,
304
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
305
+ "sourceSize": {"w":128,"h":128}
306
+ },
307
+ "beach_rm_02.png":
308
+ {
309
+ "frame": {"x":128,"y":896,"w":128,"h":128},
310
+ "rotated": false,
311
+ "trimmed": false,
312
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
313
+ "sourceSize": {"w":128,"h":128}
314
+ },
315
+ "beach_rm_02_grass.png":
316
+ {
317
+ "frame": {"x":128,"y":768,"w":128,"h":128},
318
+ "rotated": false,
319
+ "trimmed": false,
320
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
321
+ "sourceSize": {"w":128,"h":128}
322
+ },
323
+ "beach_rm_03.png":
324
+ {
325
+ "frame": {"x":128,"y":640,"w":128,"h":128},
326
+ "rotated": false,
327
+ "trimmed": false,
328
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
329
+ "sourceSize": {"w":128,"h":128}
330
+ },
331
+ "beach_rm_03_grass.png":
332
+ {
333
+ "frame": {"x":128,"y":512,"w":128,"h":128},
334
+ "rotated": false,
335
+ "trimmed": false,
336
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
337
+ "sourceSize": {"w":128,"h":128}
338
+ },
339
+ "beach_rm_04.png":
340
+ {
341
+ "frame": {"x":128,"y":384,"w":128,"h":128},
342
+ "rotated": false,
343
+ "trimmed": false,
344
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
345
+ "sourceSize": {"w":128,"h":128}
346
+ },
347
+ "beach_rm_04_grass.png":
348
+ {
349
+ "frame": {"x":128,"y":256,"w":128,"h":128},
350
+ "rotated": false,
351
+ "trimmed": false,
352
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
353
+ "sourceSize": {"w":128,"h":128}
354
+ },
355
+ "beach_rm_05.png":
356
+ {
357
+ "frame": {"x":128,"y":128,"w":128,"h":128},
358
+ "rotated": false,
359
+ "trimmed": false,
360
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
361
+ "sourceSize": {"w":128,"h":128}
362
+ },
363
+ "beach_rm_05_grass.png":
364
+ {
365
+ "frame": {"x":896,"y":0,"w":128,"h":128},
366
+ "rotated": false,
367
+ "trimmed": false,
368
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
369
+ "sourceSize": {"w":128,"h":128}
370
+ },
371
+ "beach_tl.png":
372
+ {
373
+ "frame": {"x":768,"y":0,"w":128,"h":128},
374
+ "rotated": false,
375
+ "trimmed": false,
376
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
377
+ "sourceSize": {"w":128,"h":128}
378
+ },
379
+ "beach_tl_grass.png":
380
+ {
381
+ "frame": {"x":640,"y":0,"w":128,"h":128},
382
+ "rotated": false,
383
+ "trimmed": false,
384
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
385
+ "sourceSize": {"w":128,"h":128}
386
+ },
387
+ "beach_tm_01.png":
388
+ {
389
+ "frame": {"x":512,"y":0,"w":128,"h":128},
390
+ "rotated": false,
391
+ "trimmed": false,
392
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
393
+ "sourceSize": {"w":128,"h":128}
394
+ },
395
+ "beach_tm_01_grass.png":
396
+ {
397
+ "frame": {"x":384,"y":0,"w":128,"h":128},
398
+ "rotated": false,
399
+ "trimmed": false,
400
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
401
+ "sourceSize": {"w":128,"h":128}
402
+ },
403
+ "beach_tm_02.png":
404
+ {
405
+ "frame": {"x":256,"y":0,"w":128,"h":128},
406
+ "rotated": false,
407
+ "trimmed": false,
408
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
409
+ "sourceSize": {"w":128,"h":128}
410
+ },
411
+ "beach_tm_02_grass.png":
412
+ {
413
+ "frame": {"x":128,"y":0,"w":128,"h":128},
414
+ "rotated": false,
415
+ "trimmed": false,
416
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
417
+ "sourceSize": {"w":128,"h":128}
418
+ },
419
+ "beach_tm_03.png":
420
+ {
421
+ "frame": {"x":0,"y":896,"w":128,"h":128},
422
+ "rotated": false,
423
+ "trimmed": false,
424
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
425
+ "sourceSize": {"w":128,"h":128}
426
+ },
427
+ "beach_tm_03_grass.png":
428
+ {
429
+ "frame": {"x":0,"y":768,"w":128,"h":128},
430
+ "rotated": false,
431
+ "trimmed": false,
432
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
433
+ "sourceSize": {"w":128,"h":128}
434
+ },
435
+ "beach_tm_04.png":
436
+ {
437
+ "frame": {"x":0,"y":640,"w":128,"h":128},
438
+ "rotated": false,
439
+ "trimmed": false,
440
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
441
+ "sourceSize": {"w":128,"h":128}
442
+ },
443
+ "beach_tm_04_grass.png":
444
+ {
445
+ "frame": {"x":0,"y":512,"w":128,"h":128},
446
+ "rotated": false,
447
+ "trimmed": false,
448
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
449
+ "sourceSize": {"w":128,"h":128}
450
+ },
451
+ "beach_tr.png":
452
+ {
453
+ "frame": {"x":0,"y":384,"w":128,"h":128},
454
+ "rotated": false,
455
+ "trimmed": false,
456
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
457
+ "sourceSize": {"w":128,"h":128}
458
+ },
459
+ "beach_tr_grass.png":
460
+ {
461
+ "frame": {"x":0,"y":256,"w":128,"h":128},
462
+ "rotated": false,
463
+ "trimmed": false,
464
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
465
+ "sourceSize": {"w":128,"h":128}
466
+ },
467
+ "grass.png":
468
+ {
469
+ "frame": {"x":0,"y":128,"w":128,"h":128},
470
+ "rotated": false,
471
+ "trimmed": false,
472
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
473
+ "sourceSize": {"w":128,"h":128}
474
+ },
475
+ "sand.png":
476
+ {
477
+ "frame": {"x":0,"y":0,"w":128,"h":128},
478
+ "rotated": false,
479
+ "trimmed": false,
480
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
481
+ "sourceSize": {"w":128,"h":128}
482
+ }},
483
+ "meta": {
484
+ "app": "http://www.texturepacker.com",
485
+ "version": "1.0",
486
+ "image": "ground.png",
487
+ "format": "RGBA8888",
488
+ "size": {"w":1024,"h":1024},
489
+ "scale": "1",
490
+ "smartupdate": "$TexturePacker:SmartUpdate:a4e7956c80b1dabce22dc97d34f9811b$"
491
+ }
492
+ }