diff --git a/.gitignore b/.gitignore index 7791223..e28fec8 100644 --- a/.gitignore +++ b/.gitignore @@ -52,6 +52,7 @@ tools/__pycache__/ tools/scenes/*.preview.png tools/scenes/*.regions.png tools/scenes/*.regions.sheet.png +tools/scenes/*.sheet.png # store screenshot rig output store/ diff --git a/README.md b/README.md index c4feca1..c919feb 100644 --- a/README.md +++ b/README.md @@ -75,9 +75,9 @@ decoded behind the smoke, and only once all of it is in memory does the cloud dissipate. The app opens on the level list and plays whichever level is tapped; finishing -one offers the next. Four levels ship: `pirate_cabin`, `toy_room`, -`space_station` and `rainbow_meadow`, each a backdrop with twelve to fourteen -findable sprites composited on top. See [docs/plan.md](docs/plan.md) for the roadmap. +one offers the next. Five levels ship: `pirate_cabin`, `toy_room`, +`space_station`, `rainbow_meadow` and `funfair`, each a plate with twelve to +sixteen finds stamped back onto it. See [docs/plan.md](docs/plan.md) for the roadmap. ## Scene pipeline diff --git a/assets/audio/music/funfair.mp3 b/assets/audio/music/funfair.mp3 new file mode 100644 index 0000000..2a40352 Binary files /dev/null and b/assets/audio/music/funfair.mp3 differ diff --git a/assets/levels/funfair/background.jpg b/assets/levels/funfair/background.jpg new file mode 100644 index 0000000..796415d Binary files /dev/null and b/assets/levels/funfair/background.jpg differ diff --git a/assets/levels/funfair/background_dense.jpg b/assets/levels/funfair/background_dense.jpg new file mode 100644 index 0000000..dc829c2 Binary files /dev/null and b/assets/levels/funfair/background_dense.jpg differ diff --git a/assets/levels/funfair/baked/1_blue_balloon.png b/assets/levels/funfair/baked/1_blue_balloon.png new file mode 100644 index 0000000..02f862a Binary files /dev/null and b/assets/levels/funfair/baked/1_blue_balloon.png differ diff --git a/assets/levels/funfair/baked/1_cotton_candy.png b/assets/levels/funfair/baked/1_cotton_candy.png new file mode 100644 index 0000000..cbc6d1a Binary files /dev/null and b/assets/levels/funfair/baked/1_cotton_candy.png differ diff --git a/assets/levels/funfair/baked/1_goldfish_bag.png b/assets/levels/funfair/baked/1_goldfish_bag.png new file mode 100644 index 0000000..0238714 Binary files /dev/null and b/assets/levels/funfair/baked/1_goldfish_bag.png differ diff --git a/assets/levels/funfair/baked/1_grape_lollipop.png b/assets/levels/funfair/baked/1_grape_lollipop.png new file mode 100644 index 0000000..01f8c6b Binary files /dev/null and b/assets/levels/funfair/baked/1_grape_lollipop.png differ diff --git a/assets/levels/funfair/baked/1_grape_lollipop_2.png b/assets/levels/funfair/baked/1_grape_lollipop_2.png new file mode 100644 index 0000000..fe4943a Binary files /dev/null and b/assets/levels/funfair/baked/1_grape_lollipop_2.png differ diff --git a/assets/levels/funfair/baked/1_ice_cream.png b/assets/levels/funfair/baked/1_ice_cream.png new file mode 100644 index 0000000..96bb8db Binary files /dev/null and b/assets/levels/funfair/baked/1_ice_cream.png differ diff --git a/assets/levels/funfair/baked/1_kite.png b/assets/levels/funfair/baked/1_kite.png new file mode 100644 index 0000000..1618c8e Binary files /dev/null and b/assets/levels/funfair/baked/1_kite.png differ diff --git a/assets/levels/funfair/baked/1_pinwheel.png b/assets/levels/funfair/baked/1_pinwheel.png new file mode 100644 index 0000000..2953df2 Binary files /dev/null and b/assets/levels/funfair/baked/1_pinwheel.png differ diff --git a/assets/levels/funfair/baked/1_pinwheel_2.png b/assets/levels/funfair/baked/1_pinwheel_2.png new file mode 100644 index 0000000..7be2cae Binary files /dev/null and b/assets/levels/funfair/baked/1_pinwheel_2.png differ diff --git a/assets/levels/funfair/baked/1_popcorn.png b/assets/levels/funfair/baked/1_popcorn.png new file mode 100644 index 0000000..df0445e Binary files /dev/null and b/assets/levels/funfair/baked/1_popcorn.png differ diff --git a/assets/levels/funfair/baked/1_rubber_duck.png b/assets/levels/funfair/baked/1_rubber_duck.png new file mode 100644 index 0000000..ec66f62 Binary files /dev/null and b/assets/levels/funfair/baked/1_rubber_duck.png differ diff --git a/assets/levels/funfair/baked/1_rubber_duck_2.png b/assets/levels/funfair/baked/1_rubber_duck_2.png new file mode 100644 index 0000000..fd75748 Binary files /dev/null and b/assets/levels/funfair/baked/1_rubber_duck_2.png differ diff --git a/assets/levels/funfair/baked/1_silver_whistle.png b/assets/levels/funfair/baked/1_silver_whistle.png new file mode 100644 index 0000000..14c9573 Binary files /dev/null and b/assets/levels/funfair/baked/1_silver_whistle.png differ diff --git a/assets/levels/funfair/baked/1_teddy_bear.png b/assets/levels/funfair/baked/1_teddy_bear.png new file mode 100644 index 0000000..815054c Binary files /dev/null and b/assets/levels/funfair/baked/1_teddy_bear.png differ diff --git a/assets/levels/funfair/baked/1_top_hat.png b/assets/levels/funfair/baked/1_top_hat.png new file mode 100644 index 0000000..d85b23e Binary files /dev/null and b/assets/levels/funfair/baked/1_top_hat.png differ diff --git a/assets/levels/funfair/baked/2_blue_balloon.png b/assets/levels/funfair/baked/2_blue_balloon.png new file mode 100644 index 0000000..b26c635 Binary files /dev/null and b/assets/levels/funfair/baked/2_blue_balloon.png differ diff --git a/assets/levels/funfair/baked/2_cotton_candy.png b/assets/levels/funfair/baked/2_cotton_candy.png new file mode 100644 index 0000000..46735b9 Binary files /dev/null and b/assets/levels/funfair/baked/2_cotton_candy.png differ diff --git a/assets/levels/funfair/baked/2_cotton_candy_2.png b/assets/levels/funfair/baked/2_cotton_candy_2.png new file mode 100644 index 0000000..b5fe007 Binary files /dev/null and b/assets/levels/funfair/baked/2_cotton_candy_2.png differ diff --git a/assets/levels/funfair/baked/2_goldfish_bag.png b/assets/levels/funfair/baked/2_goldfish_bag.png new file mode 100644 index 0000000..f6175eb Binary files /dev/null and b/assets/levels/funfair/baked/2_goldfish_bag.png differ diff --git a/assets/levels/funfair/baked/2_grape_lollipop.png b/assets/levels/funfair/baked/2_grape_lollipop.png new file mode 100644 index 0000000..ced39ff Binary files /dev/null and b/assets/levels/funfair/baked/2_grape_lollipop.png differ diff --git a/assets/levels/funfair/baked/2_grape_lollipop_2.png b/assets/levels/funfair/baked/2_grape_lollipop_2.png new file mode 100644 index 0000000..65e9a35 Binary files /dev/null and b/assets/levels/funfair/baked/2_grape_lollipop_2.png differ diff --git a/assets/levels/funfair/baked/2_ice_cream.png b/assets/levels/funfair/baked/2_ice_cream.png new file mode 100644 index 0000000..99d8ae4 Binary files /dev/null and b/assets/levels/funfair/baked/2_ice_cream.png differ diff --git a/assets/levels/funfair/baked/2_kite.png b/assets/levels/funfair/baked/2_kite.png new file mode 100644 index 0000000..5298044 Binary files /dev/null and b/assets/levels/funfair/baked/2_kite.png differ diff --git a/assets/levels/funfair/baked/2_pinwheel.png b/assets/levels/funfair/baked/2_pinwheel.png new file mode 100644 index 0000000..b0ccda4 Binary files /dev/null and b/assets/levels/funfair/baked/2_pinwheel.png differ diff --git a/assets/levels/funfair/baked/2_popcorn.png b/assets/levels/funfair/baked/2_popcorn.png new file mode 100644 index 0000000..e2b8b5f Binary files /dev/null and b/assets/levels/funfair/baked/2_popcorn.png differ diff --git a/assets/levels/funfair/baked/2_rubber_duck.png b/assets/levels/funfair/baked/2_rubber_duck.png new file mode 100644 index 0000000..a9d0228 Binary files /dev/null and b/assets/levels/funfair/baked/2_rubber_duck.png differ diff --git a/assets/levels/funfair/baked/2_rubber_duck_2.png b/assets/levels/funfair/baked/2_rubber_duck_2.png new file mode 100644 index 0000000..5d41446 Binary files /dev/null and b/assets/levels/funfair/baked/2_rubber_duck_2.png differ diff --git a/assets/levels/funfair/baked/2_silver_whistle.png b/assets/levels/funfair/baked/2_silver_whistle.png new file mode 100644 index 0000000..675ec23 Binary files /dev/null and b/assets/levels/funfair/baked/2_silver_whistle.png differ diff --git a/assets/levels/funfair/baked/2_teddy_bear.png b/assets/levels/funfair/baked/2_teddy_bear.png new file mode 100644 index 0000000..e78289e Binary files /dev/null and b/assets/levels/funfair/baked/2_teddy_bear.png differ diff --git a/assets/levels/funfair/baked/2_top_hat.png b/assets/levels/funfair/baked/2_top_hat.png new file mode 100644 index 0000000..989259e Binary files /dev/null and b/assets/levels/funfair/baked/2_top_hat.png differ diff --git a/assets/levels/funfair/baked/3_blue_balloon.png b/assets/levels/funfair/baked/3_blue_balloon.png new file mode 100644 index 0000000..315e15e Binary files /dev/null and b/assets/levels/funfair/baked/3_blue_balloon.png differ diff --git a/assets/levels/funfair/baked/3_cotton_candy.png b/assets/levels/funfair/baked/3_cotton_candy.png new file mode 100644 index 0000000..277e44f Binary files /dev/null and b/assets/levels/funfair/baked/3_cotton_candy.png differ diff --git a/assets/levels/funfair/baked/3_goldfish_bag.png b/assets/levels/funfair/baked/3_goldfish_bag.png new file mode 100644 index 0000000..c29d702 Binary files /dev/null and b/assets/levels/funfair/baked/3_goldfish_bag.png differ diff --git a/assets/levels/funfair/baked/3_grape_lollipop.png b/assets/levels/funfair/baked/3_grape_lollipop.png new file mode 100644 index 0000000..c13ad68 Binary files /dev/null and b/assets/levels/funfair/baked/3_grape_lollipop.png differ diff --git a/assets/levels/funfair/baked/3_grape_lollipop_2.png b/assets/levels/funfair/baked/3_grape_lollipop_2.png new file mode 100644 index 0000000..6eb88c2 Binary files /dev/null and b/assets/levels/funfair/baked/3_grape_lollipop_2.png differ diff --git a/assets/levels/funfair/baked/3_ice_cream.png b/assets/levels/funfair/baked/3_ice_cream.png new file mode 100644 index 0000000..52cd5ff Binary files /dev/null and b/assets/levels/funfair/baked/3_ice_cream.png differ diff --git a/assets/levels/funfair/baked/3_kite.png b/assets/levels/funfair/baked/3_kite.png new file mode 100644 index 0000000..cf8955f Binary files /dev/null and b/assets/levels/funfair/baked/3_kite.png differ diff --git a/assets/levels/funfair/baked/3_pinwheel.png b/assets/levels/funfair/baked/3_pinwheel.png new file mode 100644 index 0000000..0317478 Binary files /dev/null and b/assets/levels/funfair/baked/3_pinwheel.png differ diff --git a/assets/levels/funfair/baked/3_popcorn.png b/assets/levels/funfair/baked/3_popcorn.png new file mode 100644 index 0000000..0754acc Binary files /dev/null and b/assets/levels/funfair/baked/3_popcorn.png differ diff --git a/assets/levels/funfair/baked/3_popcorn_2.png b/assets/levels/funfair/baked/3_popcorn_2.png new file mode 100644 index 0000000..aba93d5 Binary files /dev/null and b/assets/levels/funfair/baked/3_popcorn_2.png differ diff --git a/assets/levels/funfair/baked/3_rubber_duck.png b/assets/levels/funfair/baked/3_rubber_duck.png new file mode 100644 index 0000000..0bca830 Binary files /dev/null and b/assets/levels/funfair/baked/3_rubber_duck.png differ diff --git a/assets/levels/funfair/baked/3_rubber_duck_2.png b/assets/levels/funfair/baked/3_rubber_duck_2.png new file mode 100644 index 0000000..6d17d7f Binary files /dev/null and b/assets/levels/funfair/baked/3_rubber_duck_2.png differ diff --git a/assets/levels/funfair/baked/3_rubber_duck_3.png b/assets/levels/funfair/baked/3_rubber_duck_3.png new file mode 100644 index 0000000..30f79ab Binary files /dev/null and b/assets/levels/funfair/baked/3_rubber_duck_3.png differ diff --git a/assets/levels/funfair/baked/3_silver_whistle.png b/assets/levels/funfair/baked/3_silver_whistle.png new file mode 100644 index 0000000..9af7601 Binary files /dev/null and b/assets/levels/funfair/baked/3_silver_whistle.png differ diff --git a/assets/levels/funfair/baked/3_teddy_bear.png b/assets/levels/funfair/baked/3_teddy_bear.png new file mode 100644 index 0000000..21ce9f0 Binary files /dev/null and b/assets/levels/funfair/baked/3_teddy_bear.png differ diff --git a/assets/levels/funfair/baked/3_teddy_bear_2.png b/assets/levels/funfair/baked/3_teddy_bear_2.png new file mode 100644 index 0000000..aea3073 Binary files /dev/null and b/assets/levels/funfair/baked/3_teddy_bear_2.png differ diff --git a/assets/levels/funfair/baked/3_top_hat.png b/assets/levels/funfair/baked/3_top_hat.png new file mode 100644 index 0000000..d92e4c5 Binary files /dev/null and b/assets/levels/funfair/baked/3_top_hat.png differ diff --git a/assets/levels/funfair/baked/4_blue_balloon.png b/assets/levels/funfair/baked/4_blue_balloon.png new file mode 100644 index 0000000..dcf0812 Binary files /dev/null and b/assets/levels/funfair/baked/4_blue_balloon.png differ diff --git a/assets/levels/funfair/baked/4_cotton_candy.png b/assets/levels/funfair/baked/4_cotton_candy.png new file mode 100644 index 0000000..6aea37e Binary files /dev/null and b/assets/levels/funfair/baked/4_cotton_candy.png differ diff --git a/assets/levels/funfair/baked/4_cotton_candy_2.png b/assets/levels/funfair/baked/4_cotton_candy_2.png new file mode 100644 index 0000000..e743d3a Binary files /dev/null and b/assets/levels/funfair/baked/4_cotton_candy_2.png differ diff --git a/assets/levels/funfair/baked/4_goldfish_bag.png b/assets/levels/funfair/baked/4_goldfish_bag.png new file mode 100644 index 0000000..d793269 Binary files /dev/null and b/assets/levels/funfair/baked/4_goldfish_bag.png differ diff --git a/assets/levels/funfair/baked/4_goldfish_bag_2.png b/assets/levels/funfair/baked/4_goldfish_bag_2.png new file mode 100644 index 0000000..6357d5a Binary files /dev/null and b/assets/levels/funfair/baked/4_goldfish_bag_2.png differ diff --git a/assets/levels/funfair/baked/4_grape_lollipop.png b/assets/levels/funfair/baked/4_grape_lollipop.png new file mode 100644 index 0000000..d2e6ae6 Binary files /dev/null and b/assets/levels/funfair/baked/4_grape_lollipop.png differ diff --git a/assets/levels/funfair/baked/4_grape_lollipop_2.png b/assets/levels/funfair/baked/4_grape_lollipop_2.png new file mode 100644 index 0000000..e169ee8 Binary files /dev/null and b/assets/levels/funfair/baked/4_grape_lollipop_2.png differ diff --git a/assets/levels/funfair/baked/4_ice_cream.png b/assets/levels/funfair/baked/4_ice_cream.png new file mode 100644 index 0000000..06b2d38 Binary files /dev/null and b/assets/levels/funfair/baked/4_ice_cream.png differ diff --git a/assets/levels/funfair/baked/4_kite.png b/assets/levels/funfair/baked/4_kite.png new file mode 100644 index 0000000..33d3f34 Binary files /dev/null and b/assets/levels/funfair/baked/4_kite.png differ diff --git a/assets/levels/funfair/baked/4_pinwheel.png b/assets/levels/funfair/baked/4_pinwheel.png new file mode 100644 index 0000000..b58f88c Binary files /dev/null and b/assets/levels/funfair/baked/4_pinwheel.png differ diff --git a/assets/levels/funfair/baked/4_popcorn.png b/assets/levels/funfair/baked/4_popcorn.png new file mode 100644 index 0000000..14f6b9c Binary files /dev/null and b/assets/levels/funfair/baked/4_popcorn.png differ diff --git a/assets/levels/funfair/baked/4_rubber_duck.png b/assets/levels/funfair/baked/4_rubber_duck.png new file mode 100644 index 0000000..5810ab7 Binary files /dev/null and b/assets/levels/funfair/baked/4_rubber_duck.png differ diff --git a/assets/levels/funfair/baked/4_rubber_duck_2.png b/assets/levels/funfair/baked/4_rubber_duck_2.png new file mode 100644 index 0000000..96965ea Binary files /dev/null and b/assets/levels/funfair/baked/4_rubber_duck_2.png differ diff --git a/assets/levels/funfair/baked/4_silver_whistle.png b/assets/levels/funfair/baked/4_silver_whistle.png new file mode 100644 index 0000000..382f2bb Binary files /dev/null and b/assets/levels/funfair/baked/4_silver_whistle.png differ diff --git a/assets/levels/funfair/baked/4_teddy_bear.png b/assets/levels/funfair/baked/4_teddy_bear.png new file mode 100644 index 0000000..b448725 Binary files /dev/null and b/assets/levels/funfair/baked/4_teddy_bear.png differ diff --git a/assets/levels/funfair/baked/4_top_hat.png b/assets/levels/funfair/baked/4_top_hat.png new file mode 100644 index 0000000..510b629 Binary files /dev/null and b/assets/levels/funfair/baked/4_top_hat.png differ diff --git a/assets/levels/funfair/baked/4_top_hat_2.png b/assets/levels/funfair/baked/4_top_hat_2.png new file mode 100644 index 0000000..08f48df Binary files /dev/null and b/assets/levels/funfair/baked/4_top_hat_2.png differ diff --git a/assets/levels/funfair/baked/chip_blue_balloon.png b/assets/levels/funfair/baked/chip_blue_balloon.png new file mode 100644 index 0000000..b742200 Binary files /dev/null and b/assets/levels/funfair/baked/chip_blue_balloon.png differ diff --git a/assets/levels/funfair/baked/chip_cotton_candy.png b/assets/levels/funfair/baked/chip_cotton_candy.png new file mode 100644 index 0000000..c4c17f1 Binary files /dev/null and b/assets/levels/funfair/baked/chip_cotton_candy.png differ diff --git a/assets/levels/funfair/baked/chip_goldfish_bag.png b/assets/levels/funfair/baked/chip_goldfish_bag.png new file mode 100644 index 0000000..bed4a3a Binary files /dev/null and b/assets/levels/funfair/baked/chip_goldfish_bag.png differ diff --git a/assets/levels/funfair/baked/chip_grape_lollipop.png b/assets/levels/funfair/baked/chip_grape_lollipop.png new file mode 100644 index 0000000..d3e0a7f Binary files /dev/null and b/assets/levels/funfair/baked/chip_grape_lollipop.png differ diff --git a/assets/levels/funfair/baked/chip_ice_cream.png b/assets/levels/funfair/baked/chip_ice_cream.png new file mode 100644 index 0000000..bb767b0 Binary files /dev/null and b/assets/levels/funfair/baked/chip_ice_cream.png differ diff --git a/assets/levels/funfair/baked/chip_kite.png b/assets/levels/funfair/baked/chip_kite.png new file mode 100644 index 0000000..2c20489 Binary files /dev/null and b/assets/levels/funfair/baked/chip_kite.png differ diff --git a/assets/levels/funfair/baked/chip_pinwheel.png b/assets/levels/funfair/baked/chip_pinwheel.png new file mode 100644 index 0000000..bdb2cbd Binary files /dev/null and b/assets/levels/funfair/baked/chip_pinwheel.png differ diff --git a/assets/levels/funfair/baked/chip_popcorn.png b/assets/levels/funfair/baked/chip_popcorn.png new file mode 100644 index 0000000..ca73390 Binary files /dev/null and b/assets/levels/funfair/baked/chip_popcorn.png differ diff --git a/assets/levels/funfair/baked/chip_rubber_duck.png b/assets/levels/funfair/baked/chip_rubber_duck.png new file mode 100644 index 0000000..72ffb84 Binary files /dev/null and b/assets/levels/funfair/baked/chip_rubber_duck.png differ diff --git a/assets/levels/funfair/baked/chip_silver_whistle.png b/assets/levels/funfair/baked/chip_silver_whistle.png new file mode 100644 index 0000000..d6b99a4 Binary files /dev/null and b/assets/levels/funfair/baked/chip_silver_whistle.png differ diff --git a/assets/levels/funfair/baked/chip_teddy_bear.png b/assets/levels/funfair/baked/chip_teddy_bear.png new file mode 100644 index 0000000..76c7dd0 Binary files /dev/null and b/assets/levels/funfair/baked/chip_teddy_bear.png differ diff --git a/assets/levels/funfair/baked/chip_top_hat.png b/assets/levels/funfair/baked/chip_top_hat.png new file mode 100644 index 0000000..de06a22 Binary files /dev/null and b/assets/levels/funfair/baked/chip_top_hat.png differ diff --git a/assets/levels/funfair/baked/dense_1_blue_balloon.png b/assets/levels/funfair/baked/dense_1_blue_balloon.png new file mode 100644 index 0000000..6f3603f Binary files /dev/null and b/assets/levels/funfair/baked/dense_1_blue_balloon.png differ diff --git a/assets/levels/funfair/baked/dense_1_blue_balloon_2.png b/assets/levels/funfair/baked/dense_1_blue_balloon_2.png new file mode 100644 index 0000000..fa885ac Binary files /dev/null and b/assets/levels/funfair/baked/dense_1_blue_balloon_2.png differ diff --git a/assets/levels/funfair/baked/dense_1_cotton_candy.png b/assets/levels/funfair/baked/dense_1_cotton_candy.png new file mode 100644 index 0000000..ad0d5ef Binary files /dev/null and b/assets/levels/funfair/baked/dense_1_cotton_candy.png differ diff --git a/assets/levels/funfair/baked/dense_1_goldfish_bag.png b/assets/levels/funfair/baked/dense_1_goldfish_bag.png new file mode 100644 index 0000000..95b3b79 Binary files /dev/null and b/assets/levels/funfair/baked/dense_1_goldfish_bag.png differ diff --git a/assets/levels/funfair/baked/dense_1_grape_lollipop.png b/assets/levels/funfair/baked/dense_1_grape_lollipop.png new file mode 100644 index 0000000..10daf9a Binary files /dev/null and b/assets/levels/funfair/baked/dense_1_grape_lollipop.png differ diff --git a/assets/levels/funfair/baked/dense_1_ice_cream_2.png b/assets/levels/funfair/baked/dense_1_ice_cream_2.png new file mode 100644 index 0000000..02d6dd0 Binary files /dev/null and b/assets/levels/funfair/baked/dense_1_ice_cream_2.png differ diff --git a/assets/levels/funfair/baked/dense_1_ice_cream_3.png b/assets/levels/funfair/baked/dense_1_ice_cream_3.png new file mode 100644 index 0000000..626ceca Binary files /dev/null and b/assets/levels/funfair/baked/dense_1_ice_cream_3.png differ diff --git a/assets/levels/funfair/baked/dense_1_ice_cream_5.png b/assets/levels/funfair/baked/dense_1_ice_cream_5.png new file mode 100644 index 0000000..f56a937 Binary files /dev/null and b/assets/levels/funfair/baked/dense_1_ice_cream_5.png differ diff --git a/assets/levels/funfair/baked/dense_1_kite.png b/assets/levels/funfair/baked/dense_1_kite.png new file mode 100644 index 0000000..61a89ea Binary files /dev/null and b/assets/levels/funfair/baked/dense_1_kite.png differ diff --git a/assets/levels/funfair/baked/dense_1_kite_2.png b/assets/levels/funfair/baked/dense_1_kite_2.png new file mode 100644 index 0000000..de2dd2a Binary files /dev/null and b/assets/levels/funfair/baked/dense_1_kite_2.png differ diff --git a/assets/levels/funfair/baked/dense_1_pinwheel.png b/assets/levels/funfair/baked/dense_1_pinwheel.png new file mode 100644 index 0000000..5a134ba Binary files /dev/null and b/assets/levels/funfair/baked/dense_1_pinwheel.png differ diff --git a/assets/levels/funfair/baked/dense_1_pinwheel_2.png b/assets/levels/funfair/baked/dense_1_pinwheel_2.png new file mode 100644 index 0000000..fcf8272 Binary files /dev/null and b/assets/levels/funfair/baked/dense_1_pinwheel_2.png differ diff --git a/assets/levels/funfair/baked/dense_1_pinwheel_3.png b/assets/levels/funfair/baked/dense_1_pinwheel_3.png new file mode 100644 index 0000000..542c5aa Binary files /dev/null and b/assets/levels/funfair/baked/dense_1_pinwheel_3.png differ diff --git a/assets/levels/funfair/baked/dense_1_popcorn.png b/assets/levels/funfair/baked/dense_1_popcorn.png new file mode 100644 index 0000000..9566401 Binary files /dev/null and b/assets/levels/funfair/baked/dense_1_popcorn.png differ diff --git a/assets/levels/funfair/baked/dense_1_rubber_duck_2.png b/assets/levels/funfair/baked/dense_1_rubber_duck_2.png new file mode 100644 index 0000000..6157708 Binary files /dev/null and b/assets/levels/funfair/baked/dense_1_rubber_duck_2.png differ diff --git a/assets/levels/funfair/baked/dense_1_rubber_duck_3.png b/assets/levels/funfair/baked/dense_1_rubber_duck_3.png new file mode 100644 index 0000000..8b3db93 Binary files /dev/null and b/assets/levels/funfair/baked/dense_1_rubber_duck_3.png differ diff --git a/assets/levels/funfair/baked/dense_1_silver_whistle.png b/assets/levels/funfair/baked/dense_1_silver_whistle.png new file mode 100644 index 0000000..d59ec8a Binary files /dev/null and b/assets/levels/funfair/baked/dense_1_silver_whistle.png differ diff --git a/assets/levels/funfair/baked/dense_1_silver_whistle_2.png b/assets/levels/funfair/baked/dense_1_silver_whistle_2.png new file mode 100644 index 0000000..fde6bcb Binary files /dev/null and b/assets/levels/funfair/baked/dense_1_silver_whistle_2.png differ diff --git a/assets/levels/funfair/baked/dense_1_silver_whistle_3.png b/assets/levels/funfair/baked/dense_1_silver_whistle_3.png new file mode 100644 index 0000000..1dd0d07 Binary files /dev/null and b/assets/levels/funfair/baked/dense_1_silver_whistle_3.png differ diff --git a/assets/levels/funfair/baked/dense_1_teddy_bear.png b/assets/levels/funfair/baked/dense_1_teddy_bear.png new file mode 100644 index 0000000..69647db Binary files /dev/null and b/assets/levels/funfair/baked/dense_1_teddy_bear.png differ diff --git a/assets/levels/funfair/baked/dense_1_teddy_bear_2.png b/assets/levels/funfair/baked/dense_1_teddy_bear_2.png new file mode 100644 index 0000000..6a6048f Binary files /dev/null and b/assets/levels/funfair/baked/dense_1_teddy_bear_2.png differ diff --git a/assets/levels/funfair/baked/dense_1_top_hat.png b/assets/levels/funfair/baked/dense_1_top_hat.png new file mode 100644 index 0000000..19a29d1 Binary files /dev/null and b/assets/levels/funfair/baked/dense_1_top_hat.png differ diff --git a/assets/levels/funfair/baked/dense_2_blue_balloon.png b/assets/levels/funfair/baked/dense_2_blue_balloon.png new file mode 100644 index 0000000..fcc00ab Binary files /dev/null and b/assets/levels/funfair/baked/dense_2_blue_balloon.png differ diff --git a/assets/levels/funfair/baked/dense_2_blue_balloon_2.png b/assets/levels/funfair/baked/dense_2_blue_balloon_2.png new file mode 100644 index 0000000..2815902 Binary files /dev/null and b/assets/levels/funfair/baked/dense_2_blue_balloon_2.png differ diff --git a/assets/levels/funfair/baked/dense_2_cotton_candy.png b/assets/levels/funfair/baked/dense_2_cotton_candy.png new file mode 100644 index 0000000..382fc77 Binary files /dev/null and b/assets/levels/funfair/baked/dense_2_cotton_candy.png differ diff --git a/assets/levels/funfair/baked/dense_2_goldfish_bag.png b/assets/levels/funfair/baked/dense_2_goldfish_bag.png new file mode 100644 index 0000000..233cbe8 Binary files /dev/null and b/assets/levels/funfair/baked/dense_2_goldfish_bag.png differ diff --git a/assets/levels/funfair/baked/dense_2_grape_lollipop.png b/assets/levels/funfair/baked/dense_2_grape_lollipop.png new file mode 100644 index 0000000..fa4effb Binary files /dev/null and b/assets/levels/funfair/baked/dense_2_grape_lollipop.png differ diff --git a/assets/levels/funfair/baked/dense_2_grape_lollipop_2.png b/assets/levels/funfair/baked/dense_2_grape_lollipop_2.png new file mode 100644 index 0000000..2c40df7 Binary files /dev/null and b/assets/levels/funfair/baked/dense_2_grape_lollipop_2.png differ diff --git a/assets/levels/funfair/baked/dense_2_ice_cream.png b/assets/levels/funfair/baked/dense_2_ice_cream.png new file mode 100644 index 0000000..c72c136 Binary files /dev/null and b/assets/levels/funfair/baked/dense_2_ice_cream.png differ diff --git a/assets/levels/funfair/baked/dense_2_ice_cream_2.png b/assets/levels/funfair/baked/dense_2_ice_cream_2.png new file mode 100644 index 0000000..6e000bd Binary files /dev/null and b/assets/levels/funfair/baked/dense_2_ice_cream_2.png differ diff --git a/assets/levels/funfair/baked/dense_2_kite.png b/assets/levels/funfair/baked/dense_2_kite.png new file mode 100644 index 0000000..442a0f2 Binary files /dev/null and b/assets/levels/funfair/baked/dense_2_kite.png differ diff --git a/assets/levels/funfair/baked/dense_2_kite_2.png b/assets/levels/funfair/baked/dense_2_kite_2.png new file mode 100644 index 0000000..8f4fe15 Binary files /dev/null and b/assets/levels/funfair/baked/dense_2_kite_2.png differ diff --git a/assets/levels/funfair/baked/dense_2_pinwheel.png b/assets/levels/funfair/baked/dense_2_pinwheel.png new file mode 100644 index 0000000..ab754d4 Binary files /dev/null and b/assets/levels/funfair/baked/dense_2_pinwheel.png differ diff --git a/assets/levels/funfair/baked/dense_2_pinwheel_2.png b/assets/levels/funfair/baked/dense_2_pinwheel_2.png new file mode 100644 index 0000000..8ee0383 Binary files /dev/null and b/assets/levels/funfair/baked/dense_2_pinwheel_2.png differ diff --git a/assets/levels/funfair/baked/dense_2_pinwheel_3.png b/assets/levels/funfair/baked/dense_2_pinwheel_3.png new file mode 100644 index 0000000..dfae39b Binary files /dev/null and b/assets/levels/funfair/baked/dense_2_pinwheel_3.png differ diff --git a/assets/levels/funfair/baked/dense_2_popcorn.png b/assets/levels/funfair/baked/dense_2_popcorn.png new file mode 100644 index 0000000..f9ef733 Binary files /dev/null and b/assets/levels/funfair/baked/dense_2_popcorn.png differ diff --git a/assets/levels/funfair/baked/dense_2_rubber_duck.png b/assets/levels/funfair/baked/dense_2_rubber_duck.png new file mode 100644 index 0000000..eea23fa Binary files /dev/null and b/assets/levels/funfair/baked/dense_2_rubber_duck.png differ diff --git a/assets/levels/funfair/baked/dense_2_silver_whistle.png b/assets/levels/funfair/baked/dense_2_silver_whistle.png new file mode 100644 index 0000000..dd3a83d Binary files /dev/null and b/assets/levels/funfair/baked/dense_2_silver_whistle.png differ diff --git a/assets/levels/funfair/baked/dense_2_silver_whistle_2.png b/assets/levels/funfair/baked/dense_2_silver_whistle_2.png new file mode 100644 index 0000000..9acb842 Binary files /dev/null and b/assets/levels/funfair/baked/dense_2_silver_whistle_2.png differ diff --git a/assets/levels/funfair/baked/dense_2_silver_whistle_3.png b/assets/levels/funfair/baked/dense_2_silver_whistle_3.png new file mode 100644 index 0000000..c13c06a Binary files /dev/null and b/assets/levels/funfair/baked/dense_2_silver_whistle_3.png differ diff --git a/assets/levels/funfair/baked/dense_2_silver_whistle_4.png b/assets/levels/funfair/baked/dense_2_silver_whistle_4.png new file mode 100644 index 0000000..162a5ef Binary files /dev/null and b/assets/levels/funfair/baked/dense_2_silver_whistle_4.png differ diff --git a/assets/levels/funfair/baked/dense_2_teddy_bear.png b/assets/levels/funfair/baked/dense_2_teddy_bear.png new file mode 100644 index 0000000..b3b0531 Binary files /dev/null and b/assets/levels/funfair/baked/dense_2_teddy_bear.png differ diff --git a/assets/levels/funfair/baked/dense_2_top_hat.png b/assets/levels/funfair/baked/dense_2_top_hat.png new file mode 100644 index 0000000..8ca61a2 Binary files /dev/null and b/assets/levels/funfair/baked/dense_2_top_hat.png differ diff --git a/assets/levels/funfair/baked/dense_3_blue_balloon.png b/assets/levels/funfair/baked/dense_3_blue_balloon.png new file mode 100644 index 0000000..3c9de95 Binary files /dev/null and b/assets/levels/funfair/baked/dense_3_blue_balloon.png differ diff --git a/assets/levels/funfair/baked/dense_3_blue_balloon_2.png b/assets/levels/funfair/baked/dense_3_blue_balloon_2.png new file mode 100644 index 0000000..42a8b60 Binary files /dev/null and b/assets/levels/funfair/baked/dense_3_blue_balloon_2.png differ diff --git a/assets/levels/funfair/baked/dense_3_cotton_candy.png b/assets/levels/funfair/baked/dense_3_cotton_candy.png new file mode 100644 index 0000000..1a3d225 Binary files /dev/null and b/assets/levels/funfair/baked/dense_3_cotton_candy.png differ diff --git a/assets/levels/funfair/baked/dense_3_goldfish_bag.png b/assets/levels/funfair/baked/dense_3_goldfish_bag.png new file mode 100644 index 0000000..ab10f77 Binary files /dev/null and b/assets/levels/funfair/baked/dense_3_goldfish_bag.png differ diff --git a/assets/levels/funfair/baked/dense_3_grape_lollipop_2.png b/assets/levels/funfair/baked/dense_3_grape_lollipop_2.png new file mode 100644 index 0000000..eaf4d08 Binary files /dev/null and b/assets/levels/funfair/baked/dense_3_grape_lollipop_2.png differ diff --git a/assets/levels/funfair/baked/dense_3_ice_cream.png b/assets/levels/funfair/baked/dense_3_ice_cream.png new file mode 100644 index 0000000..82002e1 Binary files /dev/null and b/assets/levels/funfair/baked/dense_3_ice_cream.png differ diff --git a/assets/levels/funfair/baked/dense_3_kite.png b/assets/levels/funfair/baked/dense_3_kite.png new file mode 100644 index 0000000..66535d7 Binary files /dev/null and b/assets/levels/funfair/baked/dense_3_kite.png differ diff --git a/assets/levels/funfair/baked/dense_3_kite_2.png b/assets/levels/funfair/baked/dense_3_kite_2.png new file mode 100644 index 0000000..f83b76b Binary files /dev/null and b/assets/levels/funfair/baked/dense_3_kite_2.png differ diff --git a/assets/levels/funfair/baked/dense_3_kite_3.png b/assets/levels/funfair/baked/dense_3_kite_3.png new file mode 100644 index 0000000..bb0edcc Binary files /dev/null and b/assets/levels/funfair/baked/dense_3_kite_3.png differ diff --git a/assets/levels/funfair/baked/dense_3_pinwheel.png b/assets/levels/funfair/baked/dense_3_pinwheel.png new file mode 100644 index 0000000..cdc9146 Binary files /dev/null and b/assets/levels/funfair/baked/dense_3_pinwheel.png differ diff --git a/assets/levels/funfair/baked/dense_3_pinwheel_2.png b/assets/levels/funfair/baked/dense_3_pinwheel_2.png new file mode 100644 index 0000000..76781ae Binary files /dev/null and b/assets/levels/funfair/baked/dense_3_pinwheel_2.png differ diff --git a/assets/levels/funfair/baked/dense_3_popcorn.png b/assets/levels/funfair/baked/dense_3_popcorn.png new file mode 100644 index 0000000..35e5f03 Binary files /dev/null and b/assets/levels/funfair/baked/dense_3_popcorn.png differ diff --git a/assets/levels/funfair/baked/dense_3_popcorn_2.png b/assets/levels/funfair/baked/dense_3_popcorn_2.png new file mode 100644 index 0000000..b5f4453 Binary files /dev/null and b/assets/levels/funfair/baked/dense_3_popcorn_2.png differ diff --git a/assets/levels/funfair/baked/dense_3_rubber_duck_2.png b/assets/levels/funfair/baked/dense_3_rubber_duck_2.png new file mode 100644 index 0000000..b622d96 Binary files /dev/null and b/assets/levels/funfair/baked/dense_3_rubber_duck_2.png differ diff --git a/assets/levels/funfair/baked/dense_3_silver_whistle.png b/assets/levels/funfair/baked/dense_3_silver_whistle.png new file mode 100644 index 0000000..59b58cd Binary files /dev/null and b/assets/levels/funfair/baked/dense_3_silver_whistle.png differ diff --git a/assets/levels/funfair/baked/dense_3_silver_whistle_2.png b/assets/levels/funfair/baked/dense_3_silver_whistle_2.png new file mode 100644 index 0000000..f33176e Binary files /dev/null and b/assets/levels/funfair/baked/dense_3_silver_whistle_2.png differ diff --git a/assets/levels/funfair/baked/dense_3_top_hat.png b/assets/levels/funfair/baked/dense_3_top_hat.png new file mode 100644 index 0000000..bf44ad7 Binary files /dev/null and b/assets/levels/funfair/baked/dense_3_top_hat.png differ diff --git a/assets/levels/funfair/baked/dense_4_blue_balloon.png b/assets/levels/funfair/baked/dense_4_blue_balloon.png new file mode 100644 index 0000000..bdc35b6 Binary files /dev/null and b/assets/levels/funfair/baked/dense_4_blue_balloon.png differ diff --git a/assets/levels/funfair/baked/dense_4_blue_balloon_2.png b/assets/levels/funfair/baked/dense_4_blue_balloon_2.png new file mode 100644 index 0000000..baf9dcc Binary files /dev/null and b/assets/levels/funfair/baked/dense_4_blue_balloon_2.png differ diff --git a/assets/levels/funfair/baked/dense_4_cotton_candy.png b/assets/levels/funfair/baked/dense_4_cotton_candy.png new file mode 100644 index 0000000..84b8f74 Binary files /dev/null and b/assets/levels/funfair/baked/dense_4_cotton_candy.png differ diff --git a/assets/levels/funfair/baked/dense_4_goldfish_bag.png b/assets/levels/funfair/baked/dense_4_goldfish_bag.png new file mode 100644 index 0000000..477cba8 Binary files /dev/null and b/assets/levels/funfair/baked/dense_4_goldfish_bag.png differ diff --git a/assets/levels/funfair/baked/dense_4_grape_lollipop.png b/assets/levels/funfair/baked/dense_4_grape_lollipop.png new file mode 100644 index 0000000..8e9c19c Binary files /dev/null and b/assets/levels/funfair/baked/dense_4_grape_lollipop.png differ diff --git a/assets/levels/funfair/baked/dense_4_grape_lollipop_2.png b/assets/levels/funfair/baked/dense_4_grape_lollipop_2.png new file mode 100644 index 0000000..06ea328 Binary files /dev/null and b/assets/levels/funfair/baked/dense_4_grape_lollipop_2.png differ diff --git a/assets/levels/funfair/baked/dense_4_grape_lollipop_3.png b/assets/levels/funfair/baked/dense_4_grape_lollipop_3.png new file mode 100644 index 0000000..e4497bc Binary files /dev/null and b/assets/levels/funfair/baked/dense_4_grape_lollipop_3.png differ diff --git a/assets/levels/funfair/baked/dense_4_grape_lollipop_4.png b/assets/levels/funfair/baked/dense_4_grape_lollipop_4.png new file mode 100644 index 0000000..8bbe6cb Binary files /dev/null and b/assets/levels/funfair/baked/dense_4_grape_lollipop_4.png differ diff --git a/assets/levels/funfair/baked/dense_4_grape_lollipop_5.png b/assets/levels/funfair/baked/dense_4_grape_lollipop_5.png new file mode 100644 index 0000000..a243e9a Binary files /dev/null and b/assets/levels/funfair/baked/dense_4_grape_lollipop_5.png differ diff --git a/assets/levels/funfair/baked/dense_4_ice_cream.png b/assets/levels/funfair/baked/dense_4_ice_cream.png new file mode 100644 index 0000000..476b56b Binary files /dev/null and b/assets/levels/funfair/baked/dense_4_ice_cream.png differ diff --git a/assets/levels/funfair/baked/dense_4_ice_cream_2.png b/assets/levels/funfair/baked/dense_4_ice_cream_2.png new file mode 100644 index 0000000..7c3d1ba Binary files /dev/null and b/assets/levels/funfair/baked/dense_4_ice_cream_2.png differ diff --git a/assets/levels/funfair/baked/dense_4_kite.png b/assets/levels/funfair/baked/dense_4_kite.png new file mode 100644 index 0000000..76fcd8f Binary files /dev/null and b/assets/levels/funfair/baked/dense_4_kite.png differ diff --git a/assets/levels/funfair/baked/dense_4_pinwheel.png b/assets/levels/funfair/baked/dense_4_pinwheel.png new file mode 100644 index 0000000..849ff01 Binary files /dev/null and b/assets/levels/funfair/baked/dense_4_pinwheel.png differ diff --git a/assets/levels/funfair/baked/dense_4_pinwheel_2.png b/assets/levels/funfair/baked/dense_4_pinwheel_2.png new file mode 100644 index 0000000..0cf6c99 Binary files /dev/null and b/assets/levels/funfair/baked/dense_4_pinwheel_2.png differ diff --git a/assets/levels/funfair/baked/dense_4_popcorn.png b/assets/levels/funfair/baked/dense_4_popcorn.png new file mode 100644 index 0000000..9c23acb Binary files /dev/null and b/assets/levels/funfair/baked/dense_4_popcorn.png differ diff --git a/assets/levels/funfair/baked/dense_4_silver_whistle.png b/assets/levels/funfair/baked/dense_4_silver_whistle.png new file mode 100644 index 0000000..b483def Binary files /dev/null and b/assets/levels/funfair/baked/dense_4_silver_whistle.png differ diff --git a/assets/levels/funfair/baked/dense_4_silver_whistle_2.png b/assets/levels/funfair/baked/dense_4_silver_whistle_2.png new file mode 100644 index 0000000..85e0492 Binary files /dev/null and b/assets/levels/funfair/baked/dense_4_silver_whistle_2.png differ diff --git a/assets/levels/funfair/baked/dense_4_silver_whistle_3.png b/assets/levels/funfair/baked/dense_4_silver_whistle_3.png new file mode 100644 index 0000000..97c8c7e Binary files /dev/null and b/assets/levels/funfair/baked/dense_4_silver_whistle_3.png differ diff --git a/assets/levels/funfair/baked/dense_4_silver_whistle_4.png b/assets/levels/funfair/baked/dense_4_silver_whistle_4.png new file mode 100644 index 0000000..cb66cff Binary files /dev/null and b/assets/levels/funfair/baked/dense_4_silver_whistle_4.png differ diff --git a/assets/levels/funfair/baked/dense_4_teddy_bear.png b/assets/levels/funfair/baked/dense_4_teddy_bear.png new file mode 100644 index 0000000..0936e27 Binary files /dev/null and b/assets/levels/funfair/baked/dense_4_teddy_bear.png differ diff --git a/assets/levels/funfair/baked/dense_4_teddy_bear_2.png b/assets/levels/funfair/baked/dense_4_teddy_bear_2.png new file mode 100644 index 0000000..235fc5c Binary files /dev/null and b/assets/levels/funfair/baked/dense_4_teddy_bear_2.png differ diff --git a/assets/levels/funfair/baked/dense_4_top_hat.png b/assets/levels/funfair/baked/dense_4_top_hat.png new file mode 100644 index 0000000..dd53a6c Binary files /dev/null and b/assets/levels/funfair/baked/dense_4_top_hat.png differ diff --git a/assets/levels/funfair/scene.1.json b/assets/levels/funfair/scene.1.json new file mode 100644 index 0000000..22a4574 --- /dev/null +++ b/assets/levels/funfair/scene.1.json @@ -0,0 +1,1514 @@ +{ + "sceneId": "funfair", + "name": "Funfair", + "background": "background.jpg", + "size": { + "w": 2400, + "h": 1792 + }, + "objectCount": 15, + "objects": [ + { + "id": "teddy_bear", + "kind": "teddy_bear", + "label": "Teddy Bear", + "sprite": "baked/1_teddy_bear.png", + "chip": "baked/chip_teddy_bear.png", + "pos": [ + 0.23771, + 0.70006 + ], + "size": [ + 0.04042, + 0.07087 + ], + "rotation": 0, + "polygon": [ + [ + 0.2175, + 0.71261 + ], + [ + 0.21833, + 0.67076 + ], + [ + 0.22083, + 0.66741 + ], + [ + 0.24333, + 0.66462 + ], + [ + 0.24375, + 0.66462 + ], + [ + 0.24625, + 0.66518 + ], + [ + 0.24792, + 0.66797 + ], + [ + 0.24833, + 0.66964 + ], + [ + 0.2575, + 0.71987 + ], + [ + 0.2575, + 0.72489 + ], + [ + 0.25708, + 0.72712 + ], + [ + 0.25667, + 0.72879 + ], + [ + 0.25625, + 0.72991 + ], + [ + 0.25542, + 0.73158 + ], + [ + 0.25458, + 0.7327 + ], + [ + 0.23583, + 0.73493 + ], + [ + 0.235, + 0.73493 + ], + [ + 0.22917, + 0.73382 + ], + [ + 0.21833, + 0.71931 + ], + [ + 0.2175, + 0.71596 + ] + ], + "hintCenter": [ + 0.23498, + 0.69832 + ] + }, + { + "id": "cotton_candy", + "kind": "cotton_candy", + "label": "Cotton Candy", + "sprite": "baked/1_cotton_candy.png", + "chip": "baked/chip_cotton_candy.png", + "pos": [ + 0.04979, + 0.69866 + ], + "size": [ + 0.04042, + 0.07812 + ], + "rotation": 0, + "polygon": [ + [ + 0.02958, + 0.68917 + ], + [ + 0.0325, + 0.67634 + ], + [ + 0.03333, + 0.67355 + ], + [ + 0.04167, + 0.66127 + ], + [ + 0.04417, + 0.6596 + ], + [ + 0.04917, + 0.6596 + ], + [ + 0.05125, + 0.66071 + ], + [ + 0.06125, + 0.67076 + ], + [ + 0.0625, + 0.67299 + ], + [ + 0.06917, + 0.69085 + ], + [ + 0.06958, + 0.69754 + ], + [ + 0.06875, + 0.70926 + ], + [ + 0.06833, + 0.71094 + ], + [ + 0.05708, + 0.73661 + ], + [ + 0.055, + 0.73717 + ], + [ + 0.03958, + 0.72266 + ], + [ + 0.03208, + 0.71261 + ], + [ + 0.03125, + 0.71038 + ], + [ + 0.03042, + 0.70592 + ], + [ + 0.02958, + 0.69308 + ] + ], + "hintCenter": [ + 0.04888, + 0.69487 + ] + }, + { + "id": "popcorn", + "kind": "popcorn", + "label": "Popcorn", + "sprite": "baked/1_popcorn.png", + "chip": "baked/chip_popcorn.png", + "pos": [ + 0.75854, + 0.51395 + ], + "size": [ + 0.03375, + 0.06027 + ], + "rotation": 0, + "polygon": [ + [ + 0.74167, + 0.49777 + ], + [ + 0.74292, + 0.49442 + ], + [ + 0.74667, + 0.4894 + ], + [ + 0.75417, + 0.48438 + ], + [ + 0.76333, + 0.48382 + ], + [ + 0.76458, + 0.48382 + ], + [ + 0.76958, + 0.4894 + ], + [ + 0.77417, + 0.49777 + ], + [ + 0.775, + 0.50223 + ], + [ + 0.775, + 0.50446 + ], + [ + 0.77125, + 0.53571 + ], + [ + 0.77083, + 0.53739 + ], + [ + 0.77, + 0.5385 + ], + [ + 0.76792, + 0.53962 + ], + [ + 0.75708, + 0.54353 + ], + [ + 0.74667, + 0.53516 + ], + [ + 0.74542, + 0.53237 + ], + [ + 0.745, + 0.52958 + ], + [ + 0.7425, + 0.50781 + ], + [ + 0.74167, + 0.5 + ] + ], + "hintCenter": [ + 0.75844, + 0.51162 + ] + }, + { + "id": "ice_cream", + "kind": "ice_cream", + "label": "Ice Cream", + "sprite": "baked/1_ice_cream.png", + "chip": "baked/chip_ice_cream.png", + "pos": [ + 0.86938, + 0.26842 + ], + "size": [ + 0.07125, + 0.07701 + ], + "rotation": 0, + "polygon": [ + [ + 0.83375, + 0.25949 + ], + [ + 0.83417, + 0.25558 + ], + [ + 0.8375, + 0.2394 + ], + [ + 0.83833, + 0.23605 + ], + [ + 0.83875, + 0.23549 + ], + [ + 0.84292, + 0.2327 + ], + [ + 0.84625, + 0.23103 + ], + [ + 0.85333, + 0.22991 + ], + [ + 0.89167, + 0.23996 + ], + [ + 0.89333, + 0.24163 + ], + [ + 0.90458, + 0.27065 + ], + [ + 0.90458, + 0.274 + ], + [ + 0.90292, + 0.28739 + ], + [ + 0.90167, + 0.28906 + ], + [ + 0.85, + 0.30636 + ], + [ + 0.84875, + 0.30636 + ], + [ + 0.84792, + 0.3058 + ], + [ + 0.8375, + 0.29688 + ], + [ + 0.83417, + 0.27176 + ], + [ + 0.83375, + 0.26618 + ] + ], + "hintCenter": [ + 0.86341, + 0.26615 + ] + }, + { + "id": "goldfish_bag", + "kind": "goldfish_bag", + "label": "Goldfish", + "sprite": "baked/1_goldfish_bag.png", + "chip": "baked/chip_goldfish_bag.png", + "pos": [ + 0.60938, + 0.69196 + ], + "size": [ + 0.02292, + 0.04911 + ], + "rotation": 0, + "polygon": [ + [ + 0.59792, + 0.70815 + ], + [ + 0.59917, + 0.69754 + ], + [ + 0.60875, + 0.66797 + ], + [ + 0.60917, + 0.66741 + ], + [ + 0.60958, + 0.66741 + ], + [ + 0.61375, + 0.66964 + ], + [ + 0.61708, + 0.67188 + ], + [ + 0.6175, + 0.67243 + ], + [ + 0.62042, + 0.70647 + ], + [ + 0.62042, + 0.71205 + ], + [ + 0.61875, + 0.71373 + ], + [ + 0.61542, + 0.7154 + ], + [ + 0.61375, + 0.71596 + ], + [ + 0.61292, + 0.71596 + ], + [ + 0.60583, + 0.7154 + ], + [ + 0.60292, + 0.71484 + ], + [ + 0.60125, + 0.71429 + ], + [ + 0.59958, + 0.71373 + ], + [ + 0.59833, + 0.7115 + ], + [ + 0.59792, + 0.71038 + ] + ], + "hintCenter": [ + 0.60937, + 0.69923 + ] + }, + { + "id": "rubber_duck", + "kind": "rubber_duck", + "label": "Rubber Duck", + "sprite": "baked/1_rubber_duck.png", + "chip": "baked/chip_rubber_duck.png", + "pos": [ + 0.88521, + 0.20285 + ], + "size": [ + 0.02958, + 0.03516 + ], + "rotation": 0, + "polygon": [ + [ + 0.87042, + 0.19252 + ], + [ + 0.87667, + 0.18694 + ], + [ + 0.87792, + 0.18638 + ], + [ + 0.88417, + 0.18527 + ], + [ + 0.88708, + 0.18527 + ], + [ + 0.8975, + 0.19475 + ], + [ + 0.89875, + 0.19643 + ], + [ + 0.89958, + 0.19978 + ], + [ + 0.89958, + 0.20647 + ], + [ + 0.89833, + 0.21205 + ], + [ + 0.89708, + 0.21429 + ], + [ + 0.89542, + 0.21652 + ], + [ + 0.8925, + 0.21875 + ], + [ + 0.88958, + 0.21987 + ], + [ + 0.88167, + 0.21987 + ], + [ + 0.87792, + 0.21819 + ], + [ + 0.87667, + 0.21708 + ], + [ + 0.87458, + 0.21429 + ], + [ + 0.87375, + 0.21205 + ], + [ + 0.87042, + 0.1942 + ] + ], + "hintCenter": [ + 0.88525, + 0.20418 + ] + }, + { + "id": "rubber_duck#2", + "kind": "rubber_duck", + "label": "Rubber Duck", + "sprite": "baked/1_rubber_duck_2.png", + "chip": "baked/chip_rubber_duck.png", + "pos": [ + 0.77104, + 0.21959 + ], + "size": [ + 0.03042, + 0.03739 + ], + "rotation": 0, + "polygon": [ + [ + 0.75625, + 0.21819 + ], + [ + 0.75708, + 0.21484 + ], + [ + 0.76833, + 0.20424 + ], + [ + 0.77333, + 0.20145 + ], + [ + 0.775, + 0.20089 + ], + [ + 0.77833, + 0.20257 + ], + [ + 0.78542, + 0.20982 + ], + [ + 0.78583, + 0.21038 + ], + [ + 0.78583, + 0.21317 + ], + [ + 0.7825, + 0.23103 + ], + [ + 0.78167, + 0.2327 + ], + [ + 0.77958, + 0.23549 + ], + [ + 0.77792, + 0.23661 + ], + [ + 0.77542, + 0.23772 + ], + [ + 0.76625, + 0.23772 + ], + [ + 0.76292, + 0.23661 + ], + [ + 0.76042, + 0.23493 + ], + [ + 0.75792, + 0.23158 + ], + [ + 0.75625, + 0.22656 + ], + [ + 0.75583, + 0.22266 + ] + ], + "hintCenter": [ + 0.77116, + 0.2216 + ] + }, + { + "id": "blue_balloon", + "kind": "blue_balloon", + "label": "Balloon", + "sprite": "baked/1_blue_balloon.png", + "chip": "baked/chip_blue_balloon.png", + "pos": [ + 0.2225, + 0.40709 + ], + "size": [ + 0.02833, + 0.06975 + ], + "rotation": 0, + "polygon": [ + [ + 0.20833, + 0.39118 + ], + [ + 0.20875, + 0.38783 + ], + [ + 0.21042, + 0.3817 + ], + [ + 0.2125, + 0.37779 + ], + [ + 0.21542, + 0.37444 + ], + [ + 0.21917, + 0.37221 + ], + [ + 0.22542, + 0.37221 + ], + [ + 0.22667, + 0.37277 + ], + [ + 0.23042, + 0.37556 + ], + [ + 0.2325, + 0.37835 + ], + [ + 0.23375, + 0.38058 + ], + [ + 0.23542, + 0.38504 + ], + [ + 0.23625, + 0.38895 + ], + [ + 0.23625, + 0.399 + ], + [ + 0.23542, + 0.40346 + ], + [ + 0.22333, + 0.44085 + ], + [ + 0.22208, + 0.44085 + ], + [ + 0.21, + 0.40569 + ], + [ + 0.20917, + 0.4029 + ], + [ + 0.20833, + 0.39732 + ] + ], + "hintCenter": [ + 0.22237, + 0.39663 + ] + }, + { + "id": "grape_lollipop", + "kind": "grape_lollipop", + "label": "Lollipop", + "sprite": "baked/1_grape_lollipop.png", + "chip": "baked/chip_grape_lollipop.png", + "pos": [ + 0.19875, + 0.10714 + ], + "size": [ + 0.02083, + 0.04688 + ], + "rotation": 0, + "polygon": [ + [ + 0.18833, + 0.09375 + ], + [ + 0.18875, + 0.09208 + ], + [ + 0.18958, + 0.08984 + ], + [ + 0.19083, + 0.08817 + ], + [ + 0.19333, + 0.08594 + ], + [ + 0.19667, + 0.08371 + ], + [ + 0.20167, + 0.08371 + ], + [ + 0.20417, + 0.08538 + ], + [ + 0.20583, + 0.08761 + ], + [ + 0.20667, + 0.08873 + ], + [ + 0.2075, + 0.0904 + ], + [ + 0.20833, + 0.09263 + ], + [ + 0.20875, + 0.09487 + ], + [ + 0.20875, + 0.09933 + ], + [ + 0.20458, + 0.12946 + ], + [ + 0.20417, + 0.13002 + ], + [ + 0.20208, + 0.13002 + ], + [ + 0.18917, + 0.10379 + ], + [ + 0.18875, + 0.10268 + ], + [ + 0.18833, + 0.101 + ] + ], + "hintCenter": [ + 0.19891, + 0.09981 + ] + }, + { + "id": "grape_lollipop#2", + "kind": "grape_lollipop", + "label": "Lollipop", + "sprite": "baked/1_grape_lollipop_2.png", + "chip": "baked/chip_grape_lollipop.png", + "pos": [ + 0.9425, + 0.11021 + ], + "size": [ + 0.02083, + 0.04297 + ], + "rotation": 0, + "polygon": [ + [ + 0.93208, + 0.10045 + ], + [ + 0.9325, + 0.09766 + ], + [ + 0.93333, + 0.09542 + ], + [ + 0.93542, + 0.09096 + ], + [ + 0.93667, + 0.08984 + ], + [ + 0.94042, + 0.08873 + ], + [ + 0.94292, + 0.08929 + ], + [ + 0.94792, + 0.09152 + ], + [ + 0.94875, + 0.09208 + ], + [ + 0.95, + 0.09375 + ], + [ + 0.95167, + 0.09766 + ], + [ + 0.95208, + 0.09933 + ], + [ + 0.9525, + 0.10324 + ], + [ + 0.95208, + 0.10714 + ], + [ + 0.94792, + 0.13058 + ], + [ + 0.94708, + 0.13114 + ], + [ + 0.93458, + 0.11272 + ], + [ + 0.93375, + 0.11105 + ], + [ + 0.9325, + 0.10603 + ], + [ + 0.93208, + 0.10379 + ] + ], + "hintCenter": [ + 0.94243, + 0.10447 + ] + }, + { + "id": "pinwheel", + "kind": "pinwheel", + "label": "Pinwheel", + "sprite": "baked/1_pinwheel.png", + "chip": "baked/chip_pinwheel.png", + "pos": [ + 0.82958, + 0.91769 + ], + "size": [ + 0.03833, + 0.07199 + ], + "rotation": 0, + "polygon": [ + [ + 0.81042, + 0.89453 + ], + [ + 0.81083, + 0.89062 + ], + [ + 0.81125, + 0.88951 + ], + [ + 0.81208, + 0.88839 + ], + [ + 0.83083, + 0.88281 + ], + [ + 0.83583, + 0.8817 + ], + [ + 0.8425, + 0.8817 + ], + [ + 0.84292, + 0.88225 + ], + [ + 0.84792, + 0.91462 + ], + [ + 0.84833, + 0.91853 + ], + [ + 0.84833, + 0.92411 + ], + [ + 0.84083, + 0.95089 + ], + [ + 0.84042, + 0.95201 + ], + [ + 0.83792, + 0.95312 + ], + [ + 0.83708, + 0.95312 + ], + [ + 0.81708, + 0.93304 + ], + [ + 0.81667, + 0.93248 + ], + [ + 0.81625, + 0.93192 + ], + [ + 0.81083, + 0.90179 + ], + [ + 0.81042, + 0.89676 + ] + ], + "hintCenter": [ + 0.82987, + 0.9099 + ] + }, + { + "id": "pinwheel#2", + "kind": "pinwheel", + "label": "Pinwheel", + "sprite": "baked/1_pinwheel_2.png", + "chip": "baked/chip_pinwheel.png", + "pos": [ + 0.25396, + 0.94308 + ], + "size": [ + 0.03042, + 0.06808 + ], + "rotation": 0, + "polygon": [ + [ + 0.23875, + 0.91685 + ], + [ + 0.23917, + 0.9135 + ], + [ + 0.23958, + 0.91183 + ], + [ + 0.2575, + 0.90904 + ], + [ + 0.26583, + 0.90904 + ], + [ + 0.26708, + 0.9096 + ], + [ + 0.2675, + 0.91016 + ], + [ + 0.26875, + 0.93973 + ], + [ + 0.2675, + 0.94308 + ], + [ + 0.25042, + 0.97433 + ], + [ + 0.24917, + 0.97656 + ], + [ + 0.24833, + 0.97656 + ], + [ + 0.2475, + 0.976 + ], + [ + 0.24708, + 0.97545 + ], + [ + 0.24667, + 0.97433 + ], + [ + 0.24042, + 0.94978 + ], + [ + 0.23875, + 0.92634 + ] + ], + "hintCenter": [ + 0.25263, + 0.93283 + ] + }, + { + "id": "kite", + "kind": "kite", + "label": "Kite", + "sprite": "baked/1_kite.png", + "chip": "baked/chip_kite.png", + "pos": [ + 0.61542, + 0.62863 + ], + "size": [ + 0.04417, + 0.06417 + ], + "rotation": 0, + "polygon": [ + [ + 0.59333, + 0.62109 + ], + [ + 0.59375, + 0.59654 + ], + [ + 0.59625, + 0.59654 + ], + [ + 0.62083, + 0.59933 + ], + [ + 0.62625, + 0.60045 + ], + [ + 0.62708, + 0.601 + ], + [ + 0.6275, + 0.60268 + ], + [ + 0.63292, + 0.62667 + ], + [ + 0.63667, + 0.64732 + ], + [ + 0.63708, + 0.65904 + ], + [ + 0.63708, + 0.6596 + ], + [ + 0.63625, + 0.66016 + ], + [ + 0.63542, + 0.66016 + ], + [ + 0.62958, + 0.65792 + ], + [ + 0.59375, + 0.64118 + ], + [ + 0.59333, + 0.64062 + ] + ], + "hintCenter": [ + 0.61406, + 0.62581 + ] + }, + { + "id": "top_hat", + "kind": "top_hat", + "label": "Top Hat", + "sprite": "baked/1_top_hat.png", + "chip": "baked/chip_top_hat.png", + "pos": [ + 0.10625, + 0.2034 + ], + "size": [ + 0.02917, + 0.03292 + ], + "rotation": 0, + "polygon": [ + [ + 0.09167, + 0.2115 + ], + [ + 0.09542, + 0.19196 + ], + [ + 0.09708, + 0.18917 + ], + [ + 0.10042, + 0.1875 + ], + [ + 0.10292, + 0.18694 + ], + [ + 0.10958, + 0.18694 + ], + [ + 0.11167, + 0.1875 + ], + [ + 0.11417, + 0.18862 + ], + [ + 0.11542, + 0.19085 + ], + [ + 0.12042, + 0.21038 + ], + [ + 0.12042, + 0.21261 + ], + [ + 0.11875, + 0.2154 + ], + [ + 0.1175, + 0.21652 + ], + [ + 0.11375, + 0.21819 + ], + [ + 0.10875, + 0.21931 + ], + [ + 0.10208, + 0.21931 + ], + [ + 0.0975, + 0.21819 + ], + [ + 0.095, + 0.21708 + ], + [ + 0.09292, + 0.2154 + ], + [ + 0.09167, + 0.21317 + ] + ], + "hintCenter": [ + 0.10587, + 0.20422 + ] + }, + { + "id": "silver_whistle", + "kind": "silver_whistle", + "label": "Whistle", + "sprite": "baked/1_silver_whistle.png", + "chip": "baked/chip_silver_whistle.png", + "pos": [ + 0.89479, + 0.63393 + ], + "size": [ + 0.05875, + 0.02679 + ], + "rotation": 0, + "polygon": [ + [ + 0.86542, + 0.63337 + ], + [ + 0.86667, + 0.6317 + ], + [ + 0.875, + 0.625 + ], + [ + 0.87917, + 0.62221 + ], + [ + 0.8825, + 0.62054 + ], + [ + 0.8875, + 0.62109 + ], + [ + 0.8925, + 0.62277 + ], + [ + 0.91792, + 0.6317 + ], + [ + 0.92083, + 0.63337 + ], + [ + 0.92333, + 0.63672 + ], + [ + 0.92375, + 0.63783 + ], + [ + 0.92375, + 0.6423 + ], + [ + 0.92333, + 0.64342 + ], + [ + 0.92125, + 0.64565 + ], + [ + 0.92, + 0.64621 + ], + [ + 0.91458, + 0.64676 + ], + [ + 0.91, + 0.64676 + ], + [ + 0.88667, + 0.64565 + ], + [ + 0.86792, + 0.64286 + ], + [ + 0.86583, + 0.63839 + ] + ], + "hintCenter": [ + 0.89374, + 0.63486 + ] + } + ] +} diff --git a/assets/levels/funfair/scene.2.json b/assets/levels/funfair/scene.2.json new file mode 100644 index 0000000..c8fe6d8 --- /dev/null +++ b/assets/levels/funfair/scene.2.json @@ -0,0 +1,1514 @@ +{ + "sceneId": "funfair", + "name": "Funfair", + "background": "background.jpg", + "size": { + "w": 2400, + "h": 1792 + }, + "objectCount": 15, + "objects": [ + { + "id": "teddy_bear", + "kind": "teddy_bear", + "label": "Teddy Bear", + "sprite": "baked/2_teddy_bear.png", + "chip": "baked/chip_teddy_bear.png", + "pos": [ + 0.35271, + 0.50893 + ], + "size": [ + 0.10542, + 0.09375 + ], + "rotation": 0, + "polygon": [ + [ + 0.3, + 0.53181 + ], + [ + 0.30625, + 0.49163 + ], + [ + 0.30667, + 0.49051 + ], + [ + 0.30708, + 0.48996 + ], + [ + 0.37375, + 0.46205 + ], + [ + 0.39833, + 0.46205 + ], + [ + 0.39958, + 0.46373 + ], + [ + 0.40125, + 0.46875 + ], + [ + 0.40208, + 0.47266 + ], + [ + 0.405, + 0.51172 + ], + [ + 0.405, + 0.53683 + ], + [ + 0.40167, + 0.55469 + ], + [ + 0.40083, + 0.55525 + ], + [ + 0.3975, + 0.55525 + ], + [ + 0.30458, + 0.54855 + ], + [ + 0.3, + 0.53627 + ] + ], + "hintCenter": [ + 0.3588, + 0.51047 + ] + }, + { + "id": "cotton_candy", + "kind": "cotton_candy", + "label": "Cotton Candy", + "sprite": "baked/2_cotton_candy.png", + "chip": "baked/chip_cotton_candy.png", + "pos": [ + 0.14229, + 0.60268 + ], + "size": [ + 0.04292, + 0.08147 + ], + "rotation": 0, + "polygon": [ + [ + 0.12083, + 0.64174 + ], + [ + 0.12167, + 0.58929 + ], + [ + 0.12333, + 0.58315 + ], + [ + 0.12458, + 0.58092 + ], + [ + 0.13167, + 0.57031 + ], + [ + 0.13375, + 0.56752 + ], + [ + 0.13708, + 0.56529 + ], + [ + 0.14792, + 0.56194 + ], + [ + 0.15208, + 0.56194 + ], + [ + 0.155, + 0.56362 + ], + [ + 0.15708, + 0.56585 + ], + [ + 0.15792, + 0.56752 + ], + [ + 0.16292, + 0.5798 + ], + [ + 0.16333, + 0.58426 + ], + [ + 0.16292, + 0.59989 + ], + [ + 0.16208, + 0.60324 + ], + [ + 0.15583, + 0.61663 + ], + [ + 0.15333, + 0.61998 + ], + [ + 0.12292, + 0.64286 + ], + [ + 0.12083, + 0.64286 + ] + ], + "hintCenter": [ + 0.14254, + 0.59077 + ] + }, + { + "id": "cotton_candy#2", + "kind": "cotton_candy", + "label": "Cotton Candy", + "sprite": "baked/2_cotton_candy_2.png", + "chip": "baked/chip_cotton_candy.png", + "pos": [ + 0.17688, + 0.70675 + ], + "size": [ + 0.03208, + 0.06417 + ], + "rotation": 0, + "polygon": [ + [ + 0.16083, + 0.70257 + ], + [ + 0.16417, + 0.68248 + ], + [ + 0.16458, + 0.68192 + ], + [ + 0.17083, + 0.67522 + ], + [ + 0.17292, + 0.67467 + ], + [ + 0.18042, + 0.67467 + ], + [ + 0.18125, + 0.67522 + ], + [ + 0.18958, + 0.6875 + ], + [ + 0.19, + 0.68917 + ], + [ + 0.19083, + 0.69252 + ], + [ + 0.1925, + 0.70257 + ], + [ + 0.1925, + 0.70368 + ], + [ + 0.19208, + 0.70647 + ], + [ + 0.18958, + 0.71652 + ], + [ + 0.1875, + 0.72042 + ], + [ + 0.17792, + 0.73828 + ], + [ + 0.17542, + 0.73828 + ], + [ + 0.16542, + 0.71987 + ], + [ + 0.16333, + 0.71429 + ], + [ + 0.16167, + 0.70759 + ] + ], + "hintCenter": [ + 0.1769, + 0.70242 + ] + }, + { + "id": "popcorn", + "kind": "popcorn", + "label": "Popcorn", + "sprite": "baked/2_popcorn.png", + "chip": "baked/chip_popcorn.png", + "pos": [ + 0.59833, + 0.61105 + ], + "size": [ + 0.03583, + 0.0625 + ], + "rotation": 0, + "polygon": [ + [ + 0.58042, + 0.59542 + ], + [ + 0.58375, + 0.58761 + ], + [ + 0.5925, + 0.5798 + ], + [ + 0.60125, + 0.5798 + ], + [ + 0.60458, + 0.58092 + ], + [ + 0.61292, + 0.58705 + ], + [ + 0.61542, + 0.5904 + ], + [ + 0.61583, + 0.59375 + ], + [ + 0.615, + 0.60435 + ], + [ + 0.61292, + 0.62667 + ], + [ + 0.61208, + 0.63225 + ], + [ + 0.60958, + 0.63616 + ], + [ + 0.60542, + 0.64062 + ], + [ + 0.60292, + 0.64174 + ], + [ + 0.60083, + 0.64174 + ], + [ + 0.58875, + 0.64007 + ], + [ + 0.58667, + 0.63895 + ], + [ + 0.58542, + 0.63728 + ], + [ + 0.58333, + 0.62165 + ], + [ + 0.58042, + 0.5971 + ] + ], + "hintCenter": [ + 0.59825, + 0.61015 + ] + }, + { + "id": "ice_cream", + "kind": "ice_cream", + "label": "Ice Cream", + "sprite": "baked/2_ice_cream.png", + "chip": "baked/chip_ice_cream.png", + "pos": [ + 0.30062, + 0.87528 + ], + "size": [ + 0.02208, + 0.02623 + ], + "rotation": 0, + "polygon": [ + [ + 0.28958, + 0.88002 + ], + [ + 0.29042, + 0.87333 + ], + [ + 0.29083, + 0.87109 + ], + [ + 0.29167, + 0.8683 + ], + [ + 0.2925, + 0.86663 + ], + [ + 0.29375, + 0.86496 + ], + [ + 0.295, + 0.86384 + ], + [ + 0.29667, + 0.86272 + ], + [ + 0.29875, + 0.86217 + ], + [ + 0.30167, + 0.86217 + ], + [ + 0.30333, + 0.86272 + ], + [ + 0.30583, + 0.8644 + ], + [ + 0.30792, + 0.86719 + ], + [ + 0.30917, + 0.87054 + ], + [ + 0.31125, + 0.88002 + ], + [ + 0.31125, + 0.88058 + ], + [ + 0.30875, + 0.88672 + ], + [ + 0.30833, + 0.88728 + ], + [ + 0.29208, + 0.88783 + ], + [ + 0.29, + 0.88337 + ] + ], + "hintCenter": [ + 0.30004, + 0.87534 + ] + }, + { + "id": "goldfish_bag", + "kind": "goldfish_bag", + "label": "Goldfish", + "sprite": "baked/2_goldfish_bag.png", + "chip": "baked/chip_goldfish_bag.png", + "pos": [ + 0.16271, + 0.16071 + ], + "size": [ + 0.03125, + 0.05134 + ], + "rotation": 0, + "polygon": [ + [ + 0.14708, + 0.18025 + ], + [ + 0.14833, + 0.16853 + ], + [ + 0.14875, + 0.16629 + ], + [ + 0.14917, + 0.16462 + ], + [ + 0.15667, + 0.13895 + ], + [ + 0.15708, + 0.13839 + ], + [ + 0.1625, + 0.13504 + ], + [ + 0.16833, + 0.13616 + ], + [ + 0.16917, + 0.13672 + ], + [ + 0.16958, + 0.13783 + ], + [ + 0.17625, + 0.16964 + ], + [ + 0.17792, + 0.18025 + ], + [ + 0.17792, + 0.1808 + ], + [ + 0.17083, + 0.18415 + ], + [ + 0.16958, + 0.18471 + ], + [ + 0.16792, + 0.18527 + ], + [ + 0.16583, + 0.18583 + ], + [ + 0.15917, + 0.18583 + ], + [ + 0.14792, + 0.18359 + ], + [ + 0.14708, + 0.18248 + ] + ], + "hintCenter": [ + 0.16223, + 0.16551 + ] + }, + { + "id": "rubber_duck", + "kind": "rubber_duck", + "label": "Rubber Duck", + "sprite": "baked/2_rubber_duck.png", + "chip": "baked/chip_rubber_duck.png", + "pos": [ + 0.9675, + 0.19727 + ], + "size": [ + 0.03333, + 0.04185 + ], + "rotation": 0, + "polygon": [ + [ + 0.95083, + 0.1875 + ], + [ + 0.95167, + 0.18583 + ], + [ + 0.95833, + 0.17857 + ], + [ + 0.96125, + 0.17634 + ], + [ + 0.965, + 0.17746 + ], + [ + 0.96625, + 0.17801 + ], + [ + 0.96917, + 0.18025 + ], + [ + 0.98208, + 0.19085 + ], + [ + 0.98292, + 0.19252 + ], + [ + 0.98375, + 0.19587 + ], + [ + 0.98375, + 0.20368 + ], + [ + 0.9825, + 0.20871 + ], + [ + 0.98042, + 0.21261 + ], + [ + 0.97708, + 0.2154 + ], + [ + 0.97542, + 0.21652 + ], + [ + 0.97417, + 0.21708 + ], + [ + 0.97167, + 0.21763 + ], + [ + 0.95708, + 0.21484 + ], + [ + 0.955, + 0.20926 + ], + [ + 0.95083, + 0.18806 + ] + ], + "hintCenter": [ + 0.96653, + 0.1949 + ] + }, + { + "id": "rubber_duck#2", + "kind": "rubber_duck", + "label": "Rubber Duck", + "sprite": "baked/2_rubber_duck_2.png", + "chip": "baked/chip_rubber_duck.png", + "pos": [ + 0.66854, + 0.67829 + ], + "size": [ + 0.03458, + 0.04632 + ], + "rotation": 0, + "polygon": [ + [ + 0.65125, + 0.66797 + ], + [ + 0.65917, + 0.65737 + ], + [ + 0.66167, + 0.65569 + ], + [ + 0.66542, + 0.65513 + ], + [ + 0.66833, + 0.65625 + ], + [ + 0.66958, + 0.65737 + ], + [ + 0.68292, + 0.67132 + ], + [ + 0.68458, + 0.67467 + ], + [ + 0.68542, + 0.67857 + ], + [ + 0.68542, + 0.68583 + ], + [ + 0.68417, + 0.69141 + ], + [ + 0.68167, + 0.69587 + ], + [ + 0.67833, + 0.69866 + ], + [ + 0.67417, + 0.70033 + ], + [ + 0.6675, + 0.70089 + ], + [ + 0.66083, + 0.69922 + ], + [ + 0.65833, + 0.69754 + ], + [ + 0.65583, + 0.69475 + ], + [ + 0.65417, + 0.69029 + ], + [ + 0.65125, + 0.67076 + ] + ], + "hintCenter": [ + 0.66794, + 0.68064 + ] + }, + { + "id": "blue_balloon", + "kind": "blue_balloon", + "label": "Balloon", + "sprite": "baked/2_blue_balloon.png", + "chip": "baked/chip_blue_balloon.png", + "pos": [ + 0.70521, + 0.42188 + ], + "size": [ + 0.02958, + 0.07366 + ], + "rotation": 0, + "polygon": [ + [ + 0.69042, + 0.40234 + ], + [ + 0.69083, + 0.39844 + ], + [ + 0.69125, + 0.39621 + ], + [ + 0.6925, + 0.39286 + ], + [ + 0.69583, + 0.38895 + ], + [ + 0.69708, + 0.38783 + ], + [ + 0.7025, + 0.38504 + ], + [ + 0.70833, + 0.38504 + ], + [ + 0.71, + 0.3856 + ], + [ + 0.71375, + 0.38783 + ], + [ + 0.71708, + 0.39286 + ], + [ + 0.71875, + 0.39844 + ], + [ + 0.71958, + 0.40346 + ], + [ + 0.71958, + 0.41071 + ], + [ + 0.71875, + 0.41574 + ], + [ + 0.70625, + 0.45815 + ], + [ + 0.70542, + 0.45759 + ], + [ + 0.69208, + 0.41908 + ], + [ + 0.69083, + 0.41462 + ], + [ + 0.69042, + 0.41183 + ] + ], + "hintCenter": [ + 0.70493, + 0.41 + ] + }, + { + "id": "grape_lollipop", + "kind": "grape_lollipop", + "label": "Lollipop", + "sprite": "baked/2_grape_lollipop.png", + "chip": "baked/chip_grape_lollipop.png", + "pos": [ + 0.86, + 0.70787 + ], + "size": [ + 0.02167, + 0.04743 + ], + "rotation": 0, + "polygon": [ + [ + 0.84917, + 0.69587 + ], + [ + 0.84958, + 0.69364 + ], + [ + 0.85, + 0.69252 + ], + [ + 0.85083, + 0.69029 + ], + [ + 0.85208, + 0.68862 + ], + [ + 0.85333, + 0.68694 + ], + [ + 0.85458, + 0.68583 + ], + [ + 0.85708, + 0.68415 + ], + [ + 0.86208, + 0.68415 + ], + [ + 0.86458, + 0.68527 + ], + [ + 0.86708, + 0.6875 + ], + [ + 0.8675, + 0.68806 + ], + [ + 0.86833, + 0.68917 + ], + [ + 0.87, + 0.69252 + ], + [ + 0.87042, + 0.6942 + ], + [ + 0.87042, + 0.70368 + ], + [ + 0.86125, + 0.73103 + ], + [ + 0.85875, + 0.73103 + ], + [ + 0.85, + 0.7048 + ], + [ + 0.84917, + 0.70145 + ] + ], + "hintCenter": [ + 0.85976, + 0.70063 + ] + }, + { + "id": "grape_lollipop#2", + "kind": "grape_lollipop", + "label": "Lollipop", + "sprite": "baked/2_grape_lollipop_2.png", + "chip": "baked/chip_grape_lollipop.png", + "pos": [ + 0.74958, + 0.89286 + ], + "size": [ + 0.02167, + 0.0346 + ], + "rotation": 0, + "polygon": [ + [ + 0.73875, + 0.88616 + ], + [ + 0.74125, + 0.88058 + ], + [ + 0.7425, + 0.87891 + ], + [ + 0.74542, + 0.87667 + ], + [ + 0.74875, + 0.87556 + ], + [ + 0.75125, + 0.87556 + ], + [ + 0.75333, + 0.87612 + ], + [ + 0.75625, + 0.87835 + ], + [ + 0.7575, + 0.88002 + ], + [ + 0.75958, + 0.88504 + ], + [ + 0.76, + 0.88895 + ], + [ + 0.75958, + 0.89286 + ], + [ + 0.75708, + 0.89955 + ], + [ + 0.75125, + 0.9096 + ], + [ + 0.75, + 0.9096 + ], + [ + 0.74833, + 0.90848 + ], + [ + 0.74125, + 0.90011 + ], + [ + 0.74, + 0.89788 + ], + [ + 0.73917, + 0.89453 + ], + [ + 0.73875, + 0.89118 + ] + ], + "hintCenter": [ + 0.74937, + 0.88962 + ] + }, + { + "id": "pinwheel", + "kind": "pinwheel", + "label": "Pinwheel", + "sprite": "baked/2_pinwheel.png", + "chip": "baked/chip_pinwheel.png", + "pos": [ + 0.10562, + 0.22545 + ], + "size": [ + 0.03125, + 0.0904 + ], + "rotation": 0, + "polygon": [ + [ + 0.09, + 0.19029 + ], + [ + 0.09042, + 0.18806 + ], + [ + 0.09083, + 0.1875 + ], + [ + 0.10625, + 0.18136 + ], + [ + 0.10833, + 0.1808 + ], + [ + 0.11125, + 0.18025 + ], + [ + 0.11458, + 0.18025 + ], + [ + 0.11542, + 0.1808 + ], + [ + 0.11583, + 0.18136 + ], + [ + 0.12042, + 0.20424 + ], + [ + 0.12083, + 0.20815 + ], + [ + 0.12083, + 0.21317 + ], + [ + 0.12, + 0.26897 + ], + [ + 0.11917, + 0.27009 + ], + [ + 0.11708, + 0.27009 + ], + [ + 0.11667, + 0.26953 + ], + [ + 0.09583, + 0.2221 + ], + [ + 0.09083, + 0.20033 + ], + [ + 0.09042, + 0.1981 + ], + [ + 0.09, + 0.19531 + ] + ], + "hintCenter": [ + 0.1069, + 0.2091 + ] + }, + { + "id": "kite", + "kind": "kite", + "label": "Kite", + "sprite": "baked/2_kite.png", + "chip": "baked/chip_kite.png", + "pos": [ + 0.87396, + 0.25921 + ], + "size": [ + 0.06125, + 0.13225 + ], + "rotation": 0, + "polygon": [ + [ + 0.84333, + 0.30246 + ], + [ + 0.86333, + 0.21205 + ], + [ + 0.88042, + 0.19922 + ], + [ + 0.88667, + 0.19475 + ], + [ + 0.8875, + 0.1942 + ], + [ + 0.88833, + 0.19364 + ], + [ + 0.88958, + 0.19308 + ], + [ + 0.89, + 0.19364 + ], + [ + 0.89042, + 0.1942 + ], + [ + 0.89208, + 0.1981 + ], + [ + 0.90375, + 0.22879 + ], + [ + 0.90417, + 0.22991 + ], + [ + 0.90417, + 0.23047 + ], + [ + 0.85167, + 0.3231 + ], + [ + 0.85042, + 0.32478 + ], + [ + 0.85, + 0.32478 + ], + [ + 0.84333, + 0.30859 + ] + ], + "hintCenter": [ + 0.87759, + 0.23876 + ] + }, + { + "id": "top_hat", + "kind": "top_hat", + "label": "Top Hat", + "sprite": "baked/2_top_hat.png", + "chip": "baked/chip_top_hat.png", + "pos": [ + 0.14146, + 0.88142 + ], + "size": [ + 0.02708, + 0.04185 + ], + "rotation": 0, + "polygon": [ + [ + 0.12792, + 0.86607 + ], + [ + 0.12833, + 0.86496 + ], + [ + 0.12958, + 0.86328 + ], + [ + 0.13042, + 0.86272 + ], + [ + 0.13292, + 0.86161 + ], + [ + 0.135, + 0.86105 + ], + [ + 0.1375, + 0.86049 + ], + [ + 0.14542, + 0.86049 + ], + [ + 0.14625, + 0.86105 + ], + [ + 0.15458, + 0.87277 + ], + [ + 0.15458, + 0.87612 + ], + [ + 0.15417, + 0.88225 + ], + [ + 0.15375, + 0.88728 + ], + [ + 0.15167, + 0.89342 + ], + [ + 0.14292, + 0.90123 + ], + [ + 0.13833, + 0.90179 + ], + [ + 0.13333, + 0.90123 + ], + [ + 0.12917, + 0.88783 + ], + [ + 0.12833, + 0.87612 + ], + [ + 0.12792, + 0.86942 + ] + ], + "hintCenter": [ + 0.13953, + 0.87745 + ] + }, + { + "id": "silver_whistle", + "kind": "silver_whistle", + "label": "Whistle", + "sprite": "baked/2_silver_whistle.png", + "chip": "baked/chip_silver_whistle.png", + "pos": [ + 0.7125, + 0.07785 + ], + "size": [ + 0.03417, + 0.06529 + ], + "rotation": 0, + "polygon": [ + [ + 0.69542, + 0.10045 + ], + [ + 0.69917, + 0.09208 + ], + [ + 0.72, + 0.05022 + ], + [ + 0.72292, + 0.04688 + ], + [ + 0.72542, + 0.0452 + ], + [ + 0.72583, + 0.0452 + ], + [ + 0.72708, + 0.04632 + ], + [ + 0.72792, + 0.04743 + ], + [ + 0.72917, + 0.05859 + ], + [ + 0.72917, + 0.05971 + ], + [ + 0.72667, + 0.09152 + ], + [ + 0.72542, + 0.09542 + ], + [ + 0.7225, + 0.09933 + ], + [ + 0.72083, + 0.10045 + ], + [ + 0.705, + 0.10993 + ], + [ + 0.70375, + 0.10993 + ], + [ + 0.70083, + 0.10882 + ], + [ + 0.69792, + 0.10714 + ], + [ + 0.69667, + 0.10547 + ], + [ + 0.69542, + 0.10324 + ] + ], + "hintCenter": [ + 0.71342, + 0.08626 + ] + } + ] +} diff --git a/assets/levels/funfair/scene.3.json b/assets/levels/funfair/scene.3.json new file mode 100644 index 0000000..42acf69 --- /dev/null +++ b/assets/levels/funfair/scene.3.json @@ -0,0 +1,1694 @@ +{ + "sceneId": "funfair", + "name": "Funfair", + "background": "background.jpg", + "size": { + "w": 2400, + "h": 1792 + }, + "objectCount": 17, + "objects": [ + { + "id": "teddy_bear", + "kind": "teddy_bear", + "label": "Teddy Bear", + "sprite": "baked/3_teddy_bear.png", + "chip": "baked/chip_teddy_bear.png", + "pos": [ + 0.24729, + 0.16992 + ], + "size": [ + 0.04458, + 0.06306 + ], + "rotation": 0, + "polygon": [ + [ + 0.225, + 0.17913 + ], + [ + 0.22583, + 0.16797 + ], + [ + 0.22958, + 0.14676 + ], + [ + 0.23042, + 0.14565 + ], + [ + 0.2375, + 0.13951 + ], + [ + 0.2575, + 0.13839 + ], + [ + 0.25792, + 0.13895 + ], + [ + 0.26917, + 0.17913 + ], + [ + 0.26917, + 0.18638 + ], + [ + 0.26875, + 0.18806 + ], + [ + 0.26792, + 0.19029 + ], + [ + 0.26708, + 0.19196 + ], + [ + 0.26542, + 0.19364 + ], + [ + 0.26333, + 0.19475 + ], + [ + 0.24, + 0.20089 + ], + [ + 0.2375, + 0.20089 + ], + [ + 0.23625, + 0.20033 + ], + [ + 0.23458, + 0.19922 + ], + [ + 0.23083, + 0.1942 + ], + [ + 0.225, + 0.1808 + ] + ], + "hintCenter": [ + 0.24608, + 0.17125 + ] + }, + { + "id": "teddy_bear#2", + "kind": "teddy_bear", + "label": "Teddy Bear", + "sprite": "baked/3_teddy_bear_2.png", + "chip": "baked/chip_teddy_bear.png", + "pos": [ + 0.13625, + 0.60073 + ], + "size": [ + 0.045, + 0.07645 + ], + "rotation": 0, + "polygon": [ + [ + 0.11375, + 0.61328 + ], + [ + 0.1175, + 0.56864 + ], + [ + 0.11833, + 0.56641 + ], + [ + 0.12042, + 0.56362 + ], + [ + 0.12208, + 0.5625 + ], + [ + 0.14958, + 0.5625 + ], + [ + 0.15125, + 0.56362 + ], + [ + 0.15333, + 0.56641 + ], + [ + 0.15417, + 0.5692 + ], + [ + 0.15833, + 0.61384 + ], + [ + 0.15833, + 0.61607 + ], + [ + 0.15708, + 0.63114 + ], + [ + 0.15583, + 0.63504 + ], + [ + 0.15417, + 0.63783 + ], + [ + 0.15167, + 0.63839 + ], + [ + 0.11958, + 0.63839 + ], + [ + 0.1175, + 0.63783 + ], + [ + 0.11583, + 0.6356 + ], + [ + 0.11458, + 0.63225 + ], + [ + 0.11417, + 0.63002 + ] + ], + "hintCenter": [ + 0.13607, + 0.60247 + ] + }, + { + "id": "cotton_candy", + "kind": "cotton_candy", + "label": "Cotton Candy", + "sprite": "baked/3_cotton_candy.png", + "chip": "baked/chip_cotton_candy.png", + "pos": [ + 0.15438, + 0.36468 + ], + "size": [ + 0.03625, + 0.07757 + ], + "rotation": 0, + "polygon": [ + [ + 0.13625, + 0.36663 + ], + [ + 0.13833, + 0.34152 + ], + [ + 0.14042, + 0.33873 + ], + [ + 0.1475, + 0.33036 + ], + [ + 0.15083, + 0.32812 + ], + [ + 0.15958, + 0.32589 + ], + [ + 0.1625, + 0.32589 + ], + [ + 0.16417, + 0.32645 + ], + [ + 0.16625, + 0.32812 + ], + [ + 0.16792, + 0.33036 + ], + [ + 0.16917, + 0.33371 + ], + [ + 0.17167, + 0.34431 + ], + [ + 0.17208, + 0.34821 + ], + [ + 0.17125, + 0.36496 + ], + [ + 0.16958, + 0.36998 + ], + [ + 0.1675, + 0.37277 + ], + [ + 0.16, + 0.38225 + ], + [ + 0.13833, + 0.4029 + ], + [ + 0.13792, + 0.40123 + ], + [ + 0.13625, + 0.36775 + ] + ], + "hintCenter": [ + 0.15407, + 0.35487 + ] + }, + { + "id": "popcorn", + "kind": "popcorn", + "label": "Popcorn", + "sprite": "baked/3_popcorn.png", + "chip": "baked/chip_popcorn.png", + "pos": [ + 0.02958, + 0.42857 + ], + "size": [ + 0.0275, + 0.04911 + ], + "rotation": 0, + "polygon": [ + [ + 0.01583, + 0.4202 + ], + [ + 0.01667, + 0.41574 + ], + [ + 0.02042, + 0.40904 + ], + [ + 0.02167, + 0.40737 + ], + [ + 0.02542, + 0.40513 + ], + [ + 0.02833, + 0.40402 + ], + [ + 0.03, + 0.40402 + ], + [ + 0.03542, + 0.40681 + ], + [ + 0.04208, + 0.41629 + ], + [ + 0.04292, + 0.41797 + ], + [ + 0.04292, + 0.42076 + ], + [ + 0.04167, + 0.44141 + ], + [ + 0.04125, + 0.44531 + ], + [ + 0.04042, + 0.44922 + ], + [ + 0.035, + 0.45145 + ], + [ + 0.03042, + 0.45257 + ], + [ + 0.02875, + 0.45257 + ], + [ + 0.02417, + 0.45145 + ], + [ + 0.01833, + 0.4481 + ], + [ + 0.01583, + 0.42299 + ] + ], + "hintCenter": [ + 0.02924, + 0.42858 + ] + }, + { + "id": "popcorn#2", + "kind": "popcorn", + "label": "Popcorn", + "sprite": "baked/3_popcorn_2.png", + "chip": "baked/chip_popcorn.png", + "pos": [ + 0.40167, + 0.89202 + ], + "size": [ + 0.02833, + 0.05859 + ], + "rotation": 0, + "polygon": [ + [ + 0.3875, + 0.87835 + ], + [ + 0.38833, + 0.87556 + ], + [ + 0.39042, + 0.87165 + ], + [ + 0.40125, + 0.86272 + ], + [ + 0.40208, + 0.86272 + ], + [ + 0.40958, + 0.86775 + ], + [ + 0.41458, + 0.87444 + ], + [ + 0.41542, + 0.87723 + ], + [ + 0.41542, + 0.87779 + ], + [ + 0.41458, + 0.88504 + ], + [ + 0.40917, + 0.91183 + ], + [ + 0.40833, + 0.91462 + ], + [ + 0.40292, + 0.92076 + ], + [ + 0.39167, + 0.91685 + ], + [ + 0.39083, + 0.91629 + ], + [ + 0.39042, + 0.91574 + ], + [ + 0.39, + 0.9135 + ], + [ + 0.38917, + 0.90458 + ], + [ + 0.38833, + 0.89453 + ], + [ + 0.3875, + 0.88002 + ] + ], + "hintCenter": [ + 0.39939, + 0.89103 + ] + }, + { + "id": "ice_cream", + "kind": "ice_cream", + "label": "Ice Cream", + "sprite": "baked/3_ice_cream.png", + "chip": "baked/chip_ice_cream.png", + "pos": [ + 0.26542, + 0.60128 + ], + "size": [ + 0.045, + 0.08538 + ], + "rotation": 0, + "polygon": [ + [ + 0.24292, + 0.63672 + ], + [ + 0.24708, + 0.58426 + ], + [ + 0.2475, + 0.58315 + ], + [ + 0.25583, + 0.56696 + ], + [ + 0.26, + 0.56138 + ], + [ + 0.26458, + 0.55915 + ], + [ + 0.26708, + 0.55859 + ], + [ + 0.27083, + 0.55859 + ], + [ + 0.27583, + 0.56027 + ], + [ + 0.28042, + 0.56362 + ], + [ + 0.28375, + 0.56808 + ], + [ + 0.28458, + 0.57031 + ], + [ + 0.2875, + 0.58036 + ], + [ + 0.2875, + 0.58315 + ], + [ + 0.28625, + 0.58929 + ], + [ + 0.2825, + 0.60491 + ], + [ + 0.28083, + 0.60714 + ], + [ + 0.2475, + 0.64174 + ], + [ + 0.24542, + 0.64342 + ], + [ + 0.24292, + 0.6423 + ] + ], + "hintCenter": [ + 0.26401, + 0.59497 + ] + }, + { + "id": "goldfish_bag", + "kind": "goldfish_bag", + "label": "Goldfish", + "sprite": "baked/3_goldfish_bag.png", + "chip": "baked/chip_goldfish_bag.png", + "pos": [ + 0.34896, + 0.70229 + ], + "size": [ + 0.02958, + 0.05636 + ], + "rotation": 0, + "polygon": [ + [ + 0.33417, + 0.69308 + ], + [ + 0.34125, + 0.67634 + ], + [ + 0.34167, + 0.67578 + ], + [ + 0.34583, + 0.67411 + ], + [ + 0.34917, + 0.67411 + ], + [ + 0.35417, + 0.67522 + ], + [ + 0.36, + 0.6942 + ], + [ + 0.36333, + 0.72377 + ], + [ + 0.36333, + 0.72489 + ], + [ + 0.35708, + 0.72935 + ], + [ + 0.33708, + 0.72991 + ], + [ + 0.33667, + 0.72991 + ], + [ + 0.33625, + 0.72935 + ], + [ + 0.33583, + 0.72824 + ], + [ + 0.335, + 0.71875 + ], + [ + 0.33417, + 0.70257 + ] + ], + "hintCenter": [ + 0.34745, + 0.70533 + ] + }, + { + "id": "rubber_duck", + "kind": "rubber_duck", + "label": "Rubber Duck", + "sprite": "baked/3_rubber_duck.png", + "chip": "baked/chip_rubber_duck.png", + "pos": [ + 0.96417, + 0.19587 + ], + "size": [ + 0.035, + 0.04688 + ], + "rotation": 0, + "polygon": [ + [ + 0.94667, + 0.18471 + ], + [ + 0.95333, + 0.17522 + ], + [ + 0.9575, + 0.17299 + ], + [ + 0.96, + 0.17243 + ], + [ + 0.96125, + 0.17243 + ], + [ + 0.97875, + 0.18806 + ], + [ + 0.97958, + 0.18973 + ], + [ + 0.98042, + 0.19196 + ], + [ + 0.98083, + 0.19364 + ], + [ + 0.98125, + 0.19754 + ], + [ + 0.98125, + 0.20033 + ], + [ + 0.98042, + 0.20592 + ], + [ + 0.97875, + 0.20982 + ], + [ + 0.97542, + 0.21429 + ], + [ + 0.97208, + 0.21652 + ], + [ + 0.96792, + 0.21875 + ], + [ + 0.95167, + 0.21317 + ], + [ + 0.95, + 0.21038 + ], + [ + 0.94917, + 0.20759 + ], + [ + 0.94667, + 0.18583 + ] + ], + "hintCenter": [ + 0.96245, + 0.19393 + ] + }, + { + "id": "rubber_duck#2", + "kind": "rubber_duck", + "label": "Rubber Duck", + "sprite": "baked/3_rubber_duck_2.png", + "chip": "baked/chip_rubber_duck.png", + "pos": [ + 0.76917, + 0.20871 + ], + "size": [ + 0.04083, + 0.05469 + ], + "rotation": 0, + "polygon": [ + [ + 0.74875, + 0.19531 + ], + [ + 0.7575, + 0.18415 + ], + [ + 0.76125, + 0.18136 + ], + [ + 0.76625, + 0.18136 + ], + [ + 0.76875, + 0.18304 + ], + [ + 0.78542, + 0.19922 + ], + [ + 0.78708, + 0.20145 + ], + [ + 0.78917, + 0.20871 + ], + [ + 0.78917, + 0.21819 + ], + [ + 0.78833, + 0.2221 + ], + [ + 0.78625, + 0.22712 + ], + [ + 0.78417, + 0.22991 + ], + [ + 0.78, + 0.23326 + ], + [ + 0.77333, + 0.23549 + ], + [ + 0.76625, + 0.23549 + ], + [ + 0.76, + 0.23382 + ], + [ + 0.75583, + 0.23103 + ], + [ + 0.75333, + 0.22768 + ], + [ + 0.75167, + 0.22266 + ], + [ + 0.74875, + 0.19754 + ] + ], + "hintCenter": [ + 0.76857, + 0.21152 + ] + }, + { + "id": "rubber_duck#3", + "kind": "rubber_duck", + "label": "Rubber Duck", + "sprite": "baked/3_rubber_duck_3.png", + "chip": "baked/chip_rubber_duck.png", + "pos": [ + 0.97542, + 0.71735 + ], + "size": [ + 0.0325, + 0.04185 + ], + "rotation": 0, + "polygon": [ + [ + 0.96042, + 0.70647 + ], + [ + 0.96667, + 0.69922 + ], + [ + 0.97125, + 0.69643 + ], + [ + 0.97333, + 0.69643 + ], + [ + 0.97792, + 0.69978 + ], + [ + 0.98875, + 0.71205 + ], + [ + 0.99, + 0.71373 + ], + [ + 0.99125, + 0.71763 + ], + [ + 0.99125, + 0.72656 + ], + [ + 0.99, + 0.73158 + ], + [ + 0.98875, + 0.73326 + ], + [ + 0.98458, + 0.73549 + ], + [ + 0.98042, + 0.73717 + ], + [ + 0.97667, + 0.73772 + ], + [ + 0.9725, + 0.73772 + ], + [ + 0.96875, + 0.73661 + ], + [ + 0.96625, + 0.73493 + ], + [ + 0.9625, + 0.73158 + ], + [ + 0.96208, + 0.72991 + ], + [ + 0.95917, + 0.70982 + ] + ], + "hintCenter": [ + 0.97511, + 0.71938 + ] + }, + { + "id": "blue_balloon", + "kind": "blue_balloon", + "label": "Balloon", + "sprite": "baked/3_blue_balloon.png", + "chip": "baked/chip_blue_balloon.png", + "pos": [ + 0.70396, + 0.41853 + ], + "size": [ + 0.03125, + 0.08036 + ], + "rotation": 0, + "polygon": [ + [ + 0.68833, + 0.39509 + ], + [ + 0.68875, + 0.39342 + ], + [ + 0.69208, + 0.3856 + ], + [ + 0.69583, + 0.3817 + ], + [ + 0.69917, + 0.37946 + ], + [ + 0.7025, + 0.37835 + ], + [ + 0.70542, + 0.37835 + ], + [ + 0.70792, + 0.37891 + ], + [ + 0.71083, + 0.38002 + ], + [ + 0.71333, + 0.38225 + ], + [ + 0.71708, + 0.38783 + ], + [ + 0.71792, + 0.38951 + ], + [ + 0.71917, + 0.39732 + ], + [ + 0.71917, + 0.40458 + ], + [ + 0.71833, + 0.41071 + ], + [ + 0.70708, + 0.45815 + ], + [ + 0.70625, + 0.45703 + ], + [ + 0.69, + 0.41127 + ], + [ + 0.68917, + 0.40681 + ], + [ + 0.68833, + 0.39844 + ] + ], + "hintCenter": [ + 0.7041, + 0.40418 + ] + }, + { + "id": "grape_lollipop", + "kind": "grape_lollipop", + "label": "Lollipop", + "sprite": "baked/3_grape_lollipop.png", + "chip": "baked/chip_grape_lollipop.png", + "pos": [ + 0.09792, + 0.22321 + ], + "size": [ + 0.0275, + 0.03683 + ], + "rotation": 0, + "polygon": [ + [ + 0.08417, + 0.22098 + ], + [ + 0.085, + 0.21373 + ], + [ + 0.08833, + 0.20815 + ], + [ + 0.09375, + 0.20536 + ], + [ + 0.09833, + 0.2048 + ], + [ + 0.10167, + 0.20592 + ], + [ + 0.10542, + 0.20871 + ], + [ + 0.10792, + 0.21205 + ], + [ + 0.11, + 0.21708 + ], + [ + 0.11083, + 0.22042 + ], + [ + 0.11125, + 0.22433 + ], + [ + 0.11042, + 0.23103 + ], + [ + 0.10792, + 0.23382 + ], + [ + 0.10375, + 0.23717 + ], + [ + 0.09792, + 0.23996 + ], + [ + 0.0925, + 0.24107 + ], + [ + 0.0875, + 0.23772 + ], + [ + 0.08542, + 0.23493 + ], + [ + 0.085, + 0.23382 + ], + [ + 0.08417, + 0.22433 + ] + ], + "hintCenter": [ + 0.09709, + 0.22234 + ] + }, + { + "id": "grape_lollipop#2", + "kind": "grape_lollipop", + "label": "Lollipop", + "sprite": "baked/3_grape_lollipop_2.png", + "chip": "baked/chip_grape_lollipop.png", + "pos": [ + 0.22937, + 0.48996 + ], + "size": [ + 0.02958, + 0.08036 + ], + "rotation": 0, + "polygon": [ + [ + 0.21458, + 0.46484 + ], + [ + 0.21542, + 0.4615 + ], + [ + 0.21667, + 0.45871 + ], + [ + 0.21833, + 0.45647 + ], + [ + 0.22125, + 0.45368 + ], + [ + 0.22375, + 0.45201 + ], + [ + 0.22792, + 0.44978 + ], + [ + 0.23208, + 0.44978 + ], + [ + 0.2375, + 0.45312 + ], + [ + 0.23875, + 0.45424 + ], + [ + 0.24042, + 0.45647 + ], + [ + 0.24167, + 0.45871 + ], + [ + 0.2425, + 0.46094 + ], + [ + 0.24333, + 0.46484 + ], + [ + 0.24375, + 0.47489 + ], + [ + 0.24083, + 0.52902 + ], + [ + 0.24042, + 0.52958 + ], + [ + 0.21792, + 0.48214 + ], + [ + 0.21625, + 0.47824 + ], + [ + 0.21458, + 0.47266 + ] + ], + "hintCenter": [ + 0.2301, + 0.47404 + ] + }, + { + "id": "pinwheel", + "kind": "pinwheel", + "label": "Pinwheel", + "sprite": "baked/3_pinwheel.png", + "chip": "baked/chip_pinwheel.png", + "pos": [ + 0.47896, + 0.48828 + ], + "size": [ + 0.03792, + 0.07254 + ], + "rotation": 0, + "polygon": [ + [ + 0.46, + 0.47266 + ], + [ + 0.47083, + 0.45536 + ], + [ + 0.4725, + 0.45312 + ], + [ + 0.47333, + 0.45201 + ], + [ + 0.49, + 0.45759 + ], + [ + 0.49083, + 0.45815 + ], + [ + 0.49125, + 0.45926 + ], + [ + 0.49708, + 0.48326 + ], + [ + 0.4975, + 0.48549 + ], + [ + 0.4975, + 0.48717 + ], + [ + 0.48125, + 0.51897 + ], + [ + 0.47875, + 0.52344 + ], + [ + 0.47833, + 0.524 + ], + [ + 0.47792, + 0.524 + ], + [ + 0.4625, + 0.49665 + ], + [ + 0.46, + 0.47433 + ] + ], + "hintCenter": [ + 0.47846, + 0.48133 + ] + }, + { + "id": "kite", + "kind": "kite", + "label": "Kite", + "sprite": "baked/3_kite.png", + "chip": "baked/chip_kite.png", + "pos": [ + 0.6025, + 0.62137 + ], + "size": [ + 0.055, + 0.06529 + ], + "rotation": 0, + "polygon": [ + [ + 0.575, + 0.59375 + ], + [ + 0.57542, + 0.58873 + ], + [ + 0.5825, + 0.58873 + ], + [ + 0.60458, + 0.59096 + ], + [ + 0.605, + 0.59152 + ], + [ + 0.62958, + 0.64565 + ], + [ + 0.62958, + 0.64732 + ], + [ + 0.62875, + 0.64955 + ], + [ + 0.62792, + 0.65067 + ], + [ + 0.62292, + 0.65346 + ], + [ + 0.61917, + 0.6529 + ], + [ + 0.58, + 0.63002 + ], + [ + 0.57625, + 0.62779 + ], + [ + 0.57542, + 0.62723 + ], + [ + 0.575, + 0.59654 + ] + ], + "hintCenter": [ + 0.59509, + 0.61632 + ] + }, + { + "id": "top_hat", + "kind": "top_hat", + "label": "Top Hat", + "sprite": "baked/3_top_hat.png", + "chip": "baked/chip_top_hat.png", + "pos": [ + 0.77021, + 0.53571 + ], + "size": [ + 0.03208, + 0.03683 + ], + "rotation": 0, + "polygon": [ + [ + 0.75417, + 0.54464 + ], + [ + 0.7625, + 0.51842 + ], + [ + 0.76375, + 0.51786 + ], + [ + 0.76583, + 0.5173 + ], + [ + 0.77708, + 0.51786 + ], + [ + 0.77833, + 0.51842 + ], + [ + 0.78, + 0.51953 + ], + [ + 0.78083, + 0.52065 + ], + [ + 0.78125, + 0.52121 + ], + [ + 0.78583, + 0.54576 + ], + [ + 0.78583, + 0.54632 + ], + [ + 0.78292, + 0.55078 + ], + [ + 0.77958, + 0.55246 + ], + [ + 0.77792, + 0.55301 + ], + [ + 0.76542, + 0.55357 + ], + [ + 0.765, + 0.55357 + ], + [ + 0.76333, + 0.55301 + ], + [ + 0.75958, + 0.55078 + ], + [ + 0.75708, + 0.54911 + ], + [ + 0.75417, + 0.54688 + ] + ], + "hintCenter": [ + 0.77041, + 0.53708 + ] + }, + { + "id": "silver_whistle", + "kind": "silver_whistle", + "label": "Whistle", + "sprite": "baked/3_silver_whistle.png", + "chip": "baked/chip_silver_whistle.png", + "pos": [ + 0.90063, + 0.62695 + ], + "size": [ + 0.07208, + 0.05748 + ], + "rotation": 0, + "polygon": [ + [ + 0.865, + 0.63337 + ], + [ + 0.87583, + 0.6183 + ], + [ + 0.88625, + 0.60603 + ], + [ + 0.89, + 0.60268 + ], + [ + 0.8925, + 0.60156 + ], + [ + 0.90917, + 0.59821 + ], + [ + 0.91458, + 0.59821 + ], + [ + 0.92167, + 0.60156 + ], + [ + 0.93, + 0.61105 + ], + [ + 0.93333, + 0.61775 + ], + [ + 0.935, + 0.62388 + ], + [ + 0.93625, + 0.6317 + ], + [ + 0.93625, + 0.63951 + ], + [ + 0.935, + 0.64509 + ], + [ + 0.92875, + 0.65458 + ], + [ + 0.92667, + 0.65513 + ], + [ + 0.87667, + 0.64955 + ], + [ + 0.87083, + 0.64788 + ], + [ + 0.86542, + 0.64174 + ], + [ + 0.86458, + 0.63839 + ] + ], + "hintCenter": [ + 0.8982, + 0.62536 + ] + } + ] +} diff --git a/assets/levels/funfair/scene.4.json b/assets/levels/funfair/scene.4.json new file mode 100644 index 0000000..0e514b2 --- /dev/null +++ b/assets/levels/funfair/scene.4.json @@ -0,0 +1,1722 @@ +{ + "sceneId": "funfair", + "name": "Funfair", + "background": "background.jpg", + "size": { + "w": 2400, + "h": 1792 + }, + "objectCount": 17, + "objects": [ + { + "id": "teddy_bear", + "kind": "teddy_bear", + "label": "Teddy Bear", + "sprite": "baked/4_teddy_bear.png", + "chip": "baked/chip_teddy_bear.png", + "pos": [ + 0.10812, + 0.19252 + ], + "size": [ + 0.03958, + 0.0692 + ], + "rotation": 0, + "polygon": [ + [ + 0.08833, + 0.16741 + ], + [ + 0.08875, + 0.16629 + ], + [ + 0.09042, + 0.16406 + ], + [ + 0.0925, + 0.16295 + ], + [ + 0.10917, + 0.15792 + ], + [ + 0.11208, + 0.15792 + ], + [ + 0.11292, + 0.15848 + ], + [ + 0.115, + 0.16127 + ], + [ + 0.11542, + 0.16239 + ], + [ + 0.12708, + 0.20592 + ], + [ + 0.1275, + 0.20759 + ], + [ + 0.1275, + 0.21094 + ], + [ + 0.12708, + 0.2115 + ], + [ + 0.12125, + 0.21819 + ], + [ + 0.10625, + 0.22656 + ], + [ + 0.10542, + 0.22656 + ], + [ + 0.1025, + 0.22489 + ], + [ + 0.09125, + 0.2154 + ], + [ + 0.09, + 0.21317 + ], + [ + 0.08833, + 0.17243 + ] + ], + "hintCenter": [ + 0.1059, + 0.18693 + ] + }, + { + "id": "cotton_candy", + "kind": "cotton_candy", + "label": "Cotton Candy", + "sprite": "baked/4_cotton_candy.png", + "chip": "baked/chip_cotton_candy.png", + "pos": [ + 0.55375, + 0.59961 + ], + "size": [ + 0.03333, + 0.06306 + ], + "rotation": 0, + "polygon": [ + [ + 0.53708, + 0.5865 + ], + [ + 0.5375, + 0.58426 + ], + [ + 0.53833, + 0.58203 + ], + [ + 0.54333, + 0.57143 + ], + [ + 0.54458, + 0.56975 + ], + [ + 0.54667, + 0.56864 + ], + [ + 0.55167, + 0.56808 + ], + [ + 0.56167, + 0.57645 + ], + [ + 0.56333, + 0.57868 + ], + [ + 0.56875, + 0.5904 + ], + [ + 0.57, + 0.59375 + ], + [ + 0.57, + 0.59989 + ], + [ + 0.56917, + 0.60882 + ], + [ + 0.56417, + 0.62723 + ], + [ + 0.56208, + 0.63058 + ], + [ + 0.56167, + 0.63058 + ], + [ + 0.545, + 0.61998 + ], + [ + 0.5425, + 0.61663 + ], + [ + 0.53833, + 0.6077 + ], + [ + 0.53708, + 0.60379 + ] + ], + "hintCenter": [ + 0.55314, + 0.59725 + ] + }, + { + "id": "cotton_candy#2", + "kind": "cotton_candy", + "label": "Cotton Candy", + "sprite": "baked/4_cotton_candy_2.png", + "chip": "baked/chip_cotton_candy.png", + "pos": [ + 0.64625, + 0.6769 + ], + "size": [ + 0.03417, + 0.06473 + ], + "rotation": 0, + "polygon": [ + [ + 0.62917, + 0.70703 + ], + [ + 0.63, + 0.67467 + ], + [ + 0.63042, + 0.66685 + ], + [ + 0.63208, + 0.66071 + ], + [ + 0.63458, + 0.65737 + ], + [ + 0.6425, + 0.64732 + ], + [ + 0.64458, + 0.64565 + ], + [ + 0.64708, + 0.64453 + ], + [ + 0.65542, + 0.64453 + ], + [ + 0.65833, + 0.64621 + ], + [ + 0.66042, + 0.649 + ], + [ + 0.66125, + 0.65123 + ], + [ + 0.6625, + 0.65737 + ], + [ + 0.66292, + 0.66127 + ], + [ + 0.66292, + 0.66685 + ], + [ + 0.6625, + 0.67634 + ], + [ + 0.66083, + 0.6808 + ], + [ + 0.65667, + 0.68862 + ], + [ + 0.65333, + 0.69252 + ], + [ + 0.63042, + 0.70871 + ] + ], + "hintCenter": [ + 0.64692, + 0.67198 + ] + }, + { + "id": "popcorn", + "kind": "popcorn", + "label": "Popcorn", + "sprite": "baked/4_popcorn.png", + "chip": "baked/chip_popcorn.png", + "pos": [ + 0.88458, + 0.18862 + ], + "size": [ + 0.03667, + 0.06362 + ], + "rotation": 0, + "polygon": [ + [ + 0.86625, + 0.2154 + ], + [ + 0.86833, + 0.17578 + ], + [ + 0.86917, + 0.17188 + ], + [ + 0.87708, + 0.16071 + ], + [ + 0.87792, + 0.16016 + ], + [ + 0.88375, + 0.15681 + ], + [ + 0.88458, + 0.15681 + ], + [ + 0.89, + 0.15848 + ], + [ + 0.89583, + 0.16183 + ], + [ + 0.89708, + 0.16295 + ], + [ + 0.8975, + 0.1635 + ], + [ + 0.90042, + 0.16853 + ], + [ + 0.9025, + 0.17243 + ], + [ + 0.9025, + 0.17913 + ], + [ + 0.89875, + 0.2115 + ], + [ + 0.89625, + 0.21373 + ], + [ + 0.8925, + 0.21652 + ], + [ + 0.88833, + 0.21931 + ], + [ + 0.88708, + 0.21987 + ], + [ + 0.8675, + 0.21819 + ] + ], + "hintCenter": [ + 0.88511, + 0.18985 + ] + }, + { + "id": "ice_cream", + "kind": "ice_cream", + "label": "Ice Cream", + "sprite": "baked/4_ice_cream.png", + "chip": "baked/chip_ice_cream.png", + "pos": [ + 0.73958, + 0.49805 + ], + "size": [ + 0.0275, + 0.05748 + ], + "rotation": 0, + "polygon": [ + [ + 0.72583, + 0.48382 + ], + [ + 0.7275, + 0.47712 + ], + [ + 0.73083, + 0.47266 + ], + [ + 0.73208, + 0.47154 + ], + [ + 0.735, + 0.46987 + ], + [ + 0.73958, + 0.46931 + ], + [ + 0.74292, + 0.47042 + ], + [ + 0.74667, + 0.47321 + ], + [ + 0.74917, + 0.47656 + ], + [ + 0.75083, + 0.48047 + ], + [ + 0.75292, + 0.49107 + ], + [ + 0.75292, + 0.49386 + ], + [ + 0.74875, + 0.51172 + ], + [ + 0.74708, + 0.5173 + ], + [ + 0.74583, + 0.51953 + ], + [ + 0.74, + 0.52623 + ], + [ + 0.73875, + 0.52511 + ], + [ + 0.72667, + 0.50056 + ], + [ + 0.72625, + 0.49944 + ], + [ + 0.72583, + 0.48884 + ] + ], + "hintCenter": [ + 0.73924, + 0.49258 + ] + }, + { + "id": "goldfish_bag", + "kind": "goldfish_bag", + "label": "Goldfish", + "sprite": "baked/4_goldfish_bag.png", + "chip": "baked/chip_goldfish_bag.png", + "pos": [ + 0.62271, + 0.21038 + ], + "size": [ + 0.03125, + 0.05246 + ], + "rotation": 0, + "polygon": [ + [ + 0.60708, + 0.23103 + ], + [ + 0.60792, + 0.21987 + ], + [ + 0.61625, + 0.18527 + ], + [ + 0.62042, + 0.18415 + ], + [ + 0.62167, + 0.18415 + ], + [ + 0.62417, + 0.18471 + ], + [ + 0.62708, + 0.18583 + ], + [ + 0.6275, + 0.18638 + ], + [ + 0.63625, + 0.21652 + ], + [ + 0.63667, + 0.21819 + ], + [ + 0.63708, + 0.22042 + ], + [ + 0.6375, + 0.22433 + ], + [ + 0.63792, + 0.22991 + ], + [ + 0.63792, + 0.2327 + ], + [ + 0.6375, + 0.23326 + ], + [ + 0.63583, + 0.23382 + ], + [ + 0.62833, + 0.23605 + ], + [ + 0.61792, + 0.23605 + ], + [ + 0.60833, + 0.23438 + ], + [ + 0.60708, + 0.2327 + ] + ], + "hintCenter": [ + 0.62256, + 0.21589 + ] + }, + { + "id": "goldfish_bag#2", + "kind": "goldfish_bag", + "label": "Goldfish", + "sprite": "baked/4_goldfish_bag_2.png", + "chip": "baked/chip_goldfish_bag.png", + "pos": [ + 0.44812, + 0.50753 + ], + "size": [ + 0.03625, + 0.06083 + ], + "rotation": 0, + "polygon": [ + [ + 0.43, + 0.53181 + ], + [ + 0.43208, + 0.51562 + ], + [ + 0.4325, + 0.51339 + ], + [ + 0.44, + 0.47991 + ], + [ + 0.44042, + 0.47879 + ], + [ + 0.44625, + 0.47712 + ], + [ + 0.44833, + 0.47712 + ], + [ + 0.45375, + 0.47768 + ], + [ + 0.45458, + 0.47824 + ], + [ + 0.46292, + 0.51618 + ], + [ + 0.46333, + 0.51842 + ], + [ + 0.46583, + 0.53237 + ], + [ + 0.46583, + 0.53292 + ], + [ + 0.46542, + 0.53404 + ], + [ + 0.465, + 0.5346 + ], + [ + 0.45292, + 0.53683 + ], + [ + 0.44958, + 0.53739 + ], + [ + 0.44667, + 0.53739 + ], + [ + 0.43208, + 0.53516 + ], + [ + 0.43, + 0.53348 + ] + ], + "hintCenter": [ + 0.44765, + 0.51312 + ] + }, + { + "id": "rubber_duck", + "kind": "rubber_duck", + "label": "Rubber Duck", + "sprite": "baked/4_rubber_duck.png", + "chip": "baked/chip_rubber_duck.png", + "pos": [ + 0.77063, + 0.21708 + ], + "size": [ + 0.03042, + 0.04241 + ], + "rotation": 0, + "polygon": [ + [ + 0.75542, + 0.20647 + ], + [ + 0.76375, + 0.19699 + ], + [ + 0.76583, + 0.19587 + ], + [ + 0.76875, + 0.19587 + ], + [ + 0.77167, + 0.19754 + ], + [ + 0.7825, + 0.20871 + ], + [ + 0.78375, + 0.21038 + ], + [ + 0.78542, + 0.21708 + ], + [ + 0.78542, + 0.2221 + ], + [ + 0.78458, + 0.226 + ], + [ + 0.78333, + 0.22935 + ], + [ + 0.78042, + 0.23326 + ], + [ + 0.77792, + 0.23493 + ], + [ + 0.77042, + 0.23772 + ], + [ + 0.76875, + 0.23772 + ], + [ + 0.76333, + 0.23605 + ], + [ + 0.76042, + 0.23326 + ], + [ + 0.75833, + 0.22991 + ], + [ + 0.7575, + 0.22545 + ], + [ + 0.75542, + 0.20926 + ] + ], + "hintCenter": [ + 0.77028, + 0.21841 + ] + }, + { + "id": "rubber_duck#2", + "kind": "rubber_duck", + "label": "Rubber Duck", + "sprite": "baked/4_rubber_duck_2.png", + "chip": "baked/chip_rubber_duck.png", + "pos": [ + 0.0325, + 0.43276 + ], + "size": [ + 0.02833, + 0.03739 + ], + "rotation": 0, + "polygon": [ + [ + 0.01833, + 0.43248 + ], + [ + 0.01875, + 0.42969 + ], + [ + 0.02083, + 0.4269 + ], + [ + 0.03083, + 0.41518 + ], + [ + 0.0325, + 0.41406 + ], + [ + 0.03583, + 0.41462 + ], + [ + 0.03875, + 0.41574 + ], + [ + 0.04042, + 0.41685 + ], + [ + 0.04583, + 0.42411 + ], + [ + 0.04625, + 0.44141 + ], + [ + 0.04625, + 0.44252 + ], + [ + 0.04583, + 0.44531 + ], + [ + 0.04458, + 0.44866 + ], + [ + 0.03792, + 0.45033 + ], + [ + 0.03458, + 0.45089 + ], + [ + 0.03417, + 0.45089 + ], + [ + 0.02292, + 0.4481 + ], + [ + 0.02, + 0.44587 + ], + [ + 0.01917, + 0.44252 + ], + [ + 0.01875, + 0.44029 + ] + ], + "hintCenter": [ + 0.033, + 0.43436 + ] + }, + { + "id": "blue_balloon", + "kind": "blue_balloon", + "label": "Balloon", + "sprite": "baked/4_blue_balloon.png", + "chip": "baked/chip_blue_balloon.png", + "pos": [ + 0.04188, + 0.60686 + ], + "size": [ + 0.03542, + 0.06529 + ], + "rotation": 0, + "polygon": [ + [ + 0.02458, + 0.59431 + ], + [ + 0.02583, + 0.58873 + ], + [ + 0.02875, + 0.58203 + ], + [ + 0.03125, + 0.57868 + ], + [ + 0.03458, + 0.57589 + ], + [ + 0.03875, + 0.57422 + ], + [ + 0.045, + 0.57422 + ], + [ + 0.05167, + 0.57812 + ], + [ + 0.05583, + 0.58426 + ], + [ + 0.05917, + 0.59821 + ], + [ + 0.05875, + 0.60435 + ], + [ + 0.05625, + 0.61496 + ], + [ + 0.05375, + 0.62109 + ], + [ + 0.04458, + 0.63728 + ], + [ + 0.04167, + 0.63895 + ], + [ + 0.03958, + 0.63728 + ], + [ + 0.03125, + 0.625 + ], + [ + 0.02792, + 0.61886 + ], + [ + 0.02583, + 0.61272 + ], + [ + 0.02417, + 0.60212 + ] + ], + "hintCenter": [ + 0.04141, + 0.60273 + ] + }, + { + "id": "grape_lollipop", + "kind": "grape_lollipop", + "label": "Lollipop", + "sprite": "baked/4_grape_lollipop.png", + "chip": "baked/chip_grape_lollipop.png", + "pos": [ + 0.96854, + 0.18917 + ], + "size": [ + 0.02375, + 0.05357 + ], + "rotation": 0, + "polygon": [ + [ + 0.95667, + 0.1769 + ], + [ + 0.95833, + 0.17132 + ], + [ + 0.95958, + 0.16853 + ], + [ + 0.96167, + 0.16518 + ], + [ + 0.96375, + 0.1635 + ], + [ + 0.96625, + 0.16239 + ], + [ + 0.9675, + 0.16239 + ], + [ + 0.97417, + 0.16462 + ], + [ + 0.97625, + 0.16574 + ], + [ + 0.97708, + 0.16685 + ], + [ + 0.97875, + 0.17076 + ], + [ + 0.98, + 0.17746 + ], + [ + 0.98, + 0.18025 + ], + [ + 0.97917, + 0.18415 + ], + [ + 0.97833, + 0.18694 + ], + [ + 0.96292, + 0.21484 + ], + [ + 0.9625, + 0.2154 + ], + [ + 0.96, + 0.21429 + ], + [ + 0.95958, + 0.21373 + ], + [ + 0.95667, + 0.18304 + ] + ], + "hintCenter": [ + 0.96781, + 0.18146 + ] + }, + { + "id": "grape_lollipop#2", + "kind": "grape_lollipop", + "label": "Lollipop", + "sprite": "baked/4_grape_lollipop_2.png", + "chip": "baked/chip_grape_lollipop.png", + "pos": [ + 0.12521, + 0.26507 + ], + "size": [ + 0.05042, + 0.08594 + ], + "rotation": 0, + "polygon": [ + [ + 0.1, + 0.27121 + ], + [ + 0.10125, + 0.26507 + ], + [ + 0.11542, + 0.22991 + ], + [ + 0.12167, + 0.22489 + ], + [ + 0.12542, + 0.22266 + ], + [ + 0.12917, + 0.2221 + ], + [ + 0.13333, + 0.22545 + ], + [ + 0.13625, + 0.23103 + ], + [ + 0.14958, + 0.27288 + ], + [ + 0.15, + 0.2885 + ], + [ + 0.14958, + 0.29464 + ], + [ + 0.14833, + 0.29688 + ], + [ + 0.13875, + 0.30301 + ], + [ + 0.13083, + 0.30748 + ], + [ + 0.12833, + 0.30692 + ], + [ + 0.12042, + 0.30301 + ], + [ + 0.11, + 0.29688 + ], + [ + 0.10208, + 0.29129 + ], + [ + 0.10042, + 0.28906 + ], + [ + 0.1, + 0.28404 + ] + ], + "hintCenter": [ + 0.12519, + 0.27467 + ] + }, + { + "id": "pinwheel", + "kind": "pinwheel", + "label": "Pinwheel", + "sprite": "baked/4_pinwheel.png", + "chip": "baked/chip_pinwheel.png", + "pos": [ + 0.19396, + 0.87221 + ], + "size": [ + 0.03875, + 0.09598 + ], + "rotation": 0, + "polygon": [ + [ + 0.17458, + 0.83482 + ], + [ + 0.175, + 0.83203 + ], + [ + 0.17542, + 0.8298 + ], + [ + 0.17625, + 0.82701 + ], + [ + 0.20125, + 0.82422 + ], + [ + 0.20542, + 0.82422 + ], + [ + 0.20833, + 0.82478 + ], + [ + 0.21, + 0.82533 + ], + [ + 0.21083, + 0.82589 + ], + [ + 0.21125, + 0.82645 + ], + [ + 0.21292, + 0.85993 + ], + [ + 0.21292, + 0.87165 + ], + [ + 0.2125, + 0.87333 + ], + [ + 0.19667, + 0.91797 + ], + [ + 0.19625, + 0.91853 + ], + [ + 0.195, + 0.91964 + ], + [ + 0.1925, + 0.91964 + ], + [ + 0.19167, + 0.91908 + ], + [ + 0.17667, + 0.87556 + ], + [ + 0.17458, + 0.84152 + ] + ], + "hintCenter": [ + 0.19381, + 0.85626 + ] + }, + { + "id": "kite", + "kind": "kite", + "label": "Kite", + "sprite": "baked/4_kite.png", + "chip": "baked/chip_kite.png", + "pos": [ + 0.68146, + 0.27958 + ], + "size": [ + 0.05292, + 0.09263 + ], + "rotation": 0, + "polygon": [ + [ + 0.655, + 0.27567 + ], + [ + 0.66167, + 0.23661 + ], + [ + 0.66208, + 0.23438 + ], + [ + 0.6625, + 0.23326 + ], + [ + 0.66417, + 0.23326 + ], + [ + 0.66542, + 0.23382 + ], + [ + 0.69583, + 0.24833 + ], + [ + 0.69625, + 0.25 + ], + [ + 0.7075, + 0.3192 + ], + [ + 0.70625, + 0.32422 + ], + [ + 0.70583, + 0.32533 + ], + [ + 0.69875, + 0.32533 + ], + [ + 0.65875, + 0.2885 + ], + [ + 0.6575, + 0.28683 + ] + ], + "hintCenter": [ + 0.67904, + 0.27105 + ] + }, + { + "id": "top_hat", + "kind": "top_hat", + "label": "Top Hat", + "sprite": "baked/4_top_hat.png", + "chip": "baked/chip_top_hat.png", + "pos": [ + 0.80812, + 0.60882 + ], + "size": [ + 0.04042, + 0.04464 + ], + "rotation": 0, + "polygon": [ + [ + 0.78792, + 0.61719 + ], + [ + 0.79792, + 0.58929 + ], + [ + 0.79875, + 0.58761 + ], + [ + 0.80083, + 0.5865 + ], + [ + 0.80958, + 0.5865 + ], + [ + 0.81667, + 0.58817 + ], + [ + 0.82042, + 0.58984 + ], + [ + 0.82208, + 0.59096 + ], + [ + 0.82417, + 0.59431 + ], + [ + 0.82792, + 0.62388 + ], + [ + 0.82708, + 0.62667 + ], + [ + 0.82542, + 0.62835 + ], + [ + 0.82042, + 0.63002 + ], + [ + 0.81667, + 0.63058 + ], + [ + 0.81125, + 0.63058 + ], + [ + 0.80167, + 0.62946 + ], + [ + 0.79583, + 0.62667 + ], + [ + 0.79167, + 0.62388 + ], + [ + 0.78875, + 0.62109 + ], + [ + 0.78792, + 0.61886 + ] + ], + "hintCenter": [ + 0.80903, + 0.6099 + ] + }, + { + "id": "top_hat#2", + "kind": "top_hat", + "label": "Top Hat", + "sprite": "baked/4_top_hat_2.png", + "chip": "baked/chip_top_hat.png", + "pos": [ + 0.39187, + 0.83426 + ], + "size": [ + 0.03375, + 0.03683 + ], + "rotation": 0, + "polygon": [ + [ + 0.375, + 0.84654 + ], + [ + 0.37833, + 0.82199 + ], + [ + 0.37875, + 0.82087 + ], + [ + 0.38, + 0.81975 + ], + [ + 0.3825, + 0.81808 + ], + [ + 0.385, + 0.81696 + ], + [ + 0.38708, + 0.81641 + ], + [ + 0.39042, + 0.81585 + ], + [ + 0.39625, + 0.81585 + ], + [ + 0.39875, + 0.81696 + ], + [ + 0.4, + 0.81864 + ], + [ + 0.40833, + 0.84152 + ], + [ + 0.40833, + 0.84263 + ], + [ + 0.4075, + 0.84487 + ], + [ + 0.40542, + 0.8471 + ], + [ + 0.40292, + 0.84877 + ], + [ + 0.38125, + 0.85212 + ], + [ + 0.37958, + 0.85212 + ], + [ + 0.37625, + 0.85045 + ], + [ + 0.375, + 0.84821 + ] + ], + "hintCenter": [ + 0.39039, + 0.83287 + ] + }, + { + "id": "silver_whistle", + "kind": "silver_whistle", + "label": "Whistle", + "sprite": "baked/4_silver_whistle.png", + "chip": "baked/chip_silver_whistle.png", + "pos": [ + 0.89792, + 0.62974 + ], + "size": [ + 0.05917, + 0.03739 + ], + "rotation": 0, + "polygon": [ + [ + 0.86833, + 0.63616 + ], + [ + 0.87125, + 0.6317 + ], + [ + 0.87708, + 0.62333 + ], + [ + 0.88, + 0.61942 + ], + [ + 0.88417, + 0.61551 + ], + [ + 0.88792, + 0.61272 + ], + [ + 0.89375, + 0.61161 + ], + [ + 0.90083, + 0.61105 + ], + [ + 0.91, + 0.61886 + ], + [ + 0.92458, + 0.63225 + ], + [ + 0.92625, + 0.63449 + ], + [ + 0.92708, + 0.63672 + ], + [ + 0.92708, + 0.64118 + ], + [ + 0.92625, + 0.64342 + ], + [ + 0.9225, + 0.64621 + ], + [ + 0.91375, + 0.64676 + ], + [ + 0.87917, + 0.64788 + ], + [ + 0.87667, + 0.64732 + ], + [ + 0.87125, + 0.64342 + ], + [ + 0.86917, + 0.64118 + ] + ], + "hintCenter": [ + 0.89651, + 0.63114 + ] + } + ] +} diff --git a/assets/levels/funfair/scene.dense.1.json b/assets/levels/funfair/scene.dense.1.json new file mode 100644 index 0000000..46a01f6 --- /dev/null +++ b/assets/levels/funfair/scene.dense.1.json @@ -0,0 +1,2196 @@ +{ + "sceneId": "funfair", + "name": "Funfair", + "background": "background_dense.jpg", + "size": { + "w": 2400, + "h": 1792 + }, + "objectCount": 22, + "objects": [ + { + "id": "teddy_bear", + "kind": "teddy_bear", + "label": "Teddy Bear", + "sprite": "baked/dense_1_teddy_bear.png", + "chip": "baked/chip_teddy_bear.png", + "pos": [ + 0.57063, + 0.10463 + ], + "size": [ + 0.02792, + 0.06083 + ], + "rotation": 0, + "polygon": [ + [ + 0.55667, + 0.11551 + ], + [ + 0.55833, + 0.07924 + ], + [ + 0.55875, + 0.07812 + ], + [ + 0.55917, + 0.07701 + ], + [ + 0.55958, + 0.07645 + ], + [ + 0.56125, + 0.07533 + ], + [ + 0.57708, + 0.07422 + ], + [ + 0.57917, + 0.07422 + ], + [ + 0.57958, + 0.07478 + ], + [ + 0.58083, + 0.08036 + ], + [ + 0.58417, + 0.10547 + ], + [ + 0.58125, + 0.11663 + ], + [ + 0.57542, + 0.13393 + ], + [ + 0.57458, + 0.13449 + ], + [ + 0.57125, + 0.13449 + ], + [ + 0.57, + 0.13393 + ], + [ + 0.56833, + 0.13281 + ], + [ + 0.56625, + 0.13058 + ], + [ + 0.5575, + 0.12054 + ], + [ + 0.55667, + 0.11886 + ] + ], + "hintCenter": [ + 0.5706, + 0.10425 + ] + }, + { + "id": "teddy_bear#2", + "kind": "teddy_bear", + "label": "Teddy Bear", + "sprite": "baked/dense_1_teddy_bear_2.png", + "chip": "baked/chip_teddy_bear.png", + "pos": [ + 0.26687, + 0.35212 + ], + "size": [ + 0.03958, + 0.05692 + ], + "rotation": 0, + "polygon": [ + [ + 0.24708, + 0.34654 + ], + [ + 0.2475, + 0.34542 + ], + [ + 0.24917, + 0.34319 + ], + [ + 0.2675, + 0.32422 + ], + [ + 0.26875, + 0.32366 + ], + [ + 0.27042, + 0.32366 + ], + [ + 0.27167, + 0.32422 + ], + [ + 0.2725, + 0.32478 + ], + [ + 0.27375, + 0.32645 + ], + [ + 0.28542, + 0.34263 + ], + [ + 0.28625, + 0.34487 + ], + [ + 0.28625, + 0.34989 + ], + [ + 0.28583, + 0.351 + ], + [ + 0.27042, + 0.37835 + ], + [ + 0.26833, + 0.38002 + ], + [ + 0.26667, + 0.38002 + ], + [ + 0.26542, + 0.37946 + ], + [ + 0.25417, + 0.37221 + ], + [ + 0.25333, + 0.37165 + ], + [ + 0.24708, + 0.34766 + ] + ], + "hintCenter": [ + 0.26741, + 0.34972 + ] + }, + { + "id": "cotton_candy", + "kind": "cotton_candy", + "label": "Cotton Candy", + "sprite": "baked/dense_1_cotton_candy.png", + "chip": "baked/chip_cotton_candy.png", + "pos": [ + 0.53479, + 0.1875 + ], + "size": [ + 0.05458, + 0.04129 + ], + "rotation": 0, + "polygon": [ + [ + 0.5075, + 0.18248 + ], + [ + 0.50792, + 0.17913 + ], + [ + 0.50875, + 0.17634 + ], + [ + 0.51083, + 0.17355 + ], + [ + 0.51917, + 0.16797 + ], + [ + 0.52042, + 0.16741 + ], + [ + 0.52625, + 0.16685 + ], + [ + 0.53625, + 0.16964 + ], + [ + 0.53833, + 0.17076 + ], + [ + 0.53958, + 0.17188 + ], + [ + 0.56125, + 0.19922 + ], + [ + 0.56167, + 0.20145 + ], + [ + 0.56125, + 0.20201 + ], + [ + 0.53417, + 0.20759 + ], + [ + 0.52458, + 0.20759 + ], + [ + 0.5225, + 0.20647 + ], + [ + 0.51458, + 0.20089 + ], + [ + 0.51208, + 0.1981 + ], + [ + 0.50792, + 0.18638 + ], + [ + 0.5075, + 0.18471 + ] + ], + "hintCenter": [ + 0.52862, + 0.18782 + ] + }, + { + "id": "popcorn", + "kind": "popcorn", + "label": "Popcorn", + "sprite": "baked/dense_1_popcorn.png", + "chip": "baked/chip_popcorn.png", + "pos": [ + 0.37542, + 0.30748 + ], + "size": [ + 0.03333, + 0.05692 + ], + "rotation": 0, + "polygon": [ + [ + 0.35875, + 0.29408 + ], + [ + 0.36042, + 0.29129 + ], + [ + 0.36667, + 0.28237 + ], + [ + 0.36833, + 0.28125 + ], + [ + 0.37375, + 0.27902 + ], + [ + 0.38167, + 0.28181 + ], + [ + 0.3825, + 0.28237 + ], + [ + 0.38875, + 0.2885 + ], + [ + 0.39042, + 0.29074 + ], + [ + 0.39167, + 0.29353 + ], + [ + 0.39125, + 0.29855 + ], + [ + 0.38833, + 0.32812 + ], + [ + 0.38708, + 0.3298 + ], + [ + 0.38125, + 0.33538 + ], + [ + 0.37708, + 0.33538 + ], + [ + 0.37125, + 0.33426 + ], + [ + 0.36417, + 0.33259 + ], + [ + 0.36292, + 0.33147 + ], + [ + 0.36208, + 0.32478 + ], + [ + 0.35875, + 0.29632 + ] + ], + "hintCenter": [ + 0.3755, + 0.31031 + ] + }, + { + "id": "ice_cream#2", + "kind": "ice_cream", + "label": "Ice Cream", + "sprite": "baked/dense_1_ice_cream_2.png", + "chip": "baked/chip_ice_cream.png", + "pos": [ + 0.58229, + 0.30273 + ], + "size": [ + 0.02458, + 0.05971 + ], + "rotation": 0, + "polygon": [ + [ + 0.57, + 0.2885 + ], + [ + 0.57042, + 0.28571 + ], + [ + 0.57167, + 0.27958 + ], + [ + 0.57208, + 0.27846 + ], + [ + 0.57708, + 0.27344 + ], + [ + 0.57833, + 0.27288 + ], + [ + 0.58042, + 0.27288 + ], + [ + 0.58292, + 0.27511 + ], + [ + 0.58375, + 0.27623 + ], + [ + 0.5925, + 0.28906 + ], + [ + 0.59375, + 0.29129 + ], + [ + 0.59417, + 0.29464 + ], + [ + 0.59417, + 0.29632 + ], + [ + 0.58958, + 0.3298 + ], + [ + 0.58875, + 0.33203 + ], + [ + 0.58667, + 0.33203 + ], + [ + 0.58583, + 0.33147 + ], + [ + 0.58458, + 0.32924 + ], + [ + 0.57083, + 0.29967 + ], + [ + 0.57042, + 0.29855 + ] + ], + "hintCenter": [ + 0.58331, + 0.30304 + ] + }, + { + "id": "ice_cream#3", + "kind": "ice_cream", + "label": "Ice Cream", + "sprite": "baked/dense_1_ice_cream_3.png", + "chip": "baked/chip_ice_cream.png", + "pos": [ + 0.49729, + 0.62919 + ], + "size": [ + 0.03208, + 0.04185 + ], + "rotation": 0, + "polygon": [ + [ + 0.48167, + 0.61942 + ], + [ + 0.48417, + 0.61496 + ], + [ + 0.48625, + 0.61217 + ], + [ + 0.49042, + 0.60938 + ], + [ + 0.49167, + 0.60882 + ], + [ + 0.49542, + 0.60826 + ], + [ + 0.49792, + 0.60882 + ], + [ + 0.50042, + 0.60993 + ], + [ + 0.50333, + 0.61217 + ], + [ + 0.50875, + 0.61775 + ], + [ + 0.51125, + 0.62221 + ], + [ + 0.51292, + 0.62891 + ], + [ + 0.51292, + 0.63783 + ], + [ + 0.51208, + 0.64174 + ], + [ + 0.49375, + 0.649 + ], + [ + 0.49208, + 0.64955 + ], + [ + 0.48792, + 0.649 + ], + [ + 0.48292, + 0.63895 + ], + [ + 0.48167, + 0.6356 + ], + [ + 0.48125, + 0.62221 + ] + ], + "hintCenter": [ + 0.49528, + 0.62656 + ] + }, + { + "id": "ice_cream#5", + "kind": "ice_cream", + "label": "Ice Cream", + "sprite": "baked/dense_1_ice_cream_5.png", + "chip": "baked/chip_ice_cream.png", + "pos": [ + 0.84813, + 0.68359 + ], + "size": [ + 0.02042, + 0.05469 + ], + "rotation": 0, + "polygon": [ + [ + 0.83792, + 0.68136 + ], + [ + 0.83875, + 0.67467 + ], + [ + 0.84042, + 0.66797 + ], + [ + 0.84083, + 0.66685 + ], + [ + 0.84458, + 0.66016 + ], + [ + 0.84708, + 0.65737 + ], + [ + 0.84917, + 0.65625 + ], + [ + 0.85, + 0.65625 + ], + [ + 0.85458, + 0.66574 + ], + [ + 0.85542, + 0.66797 + ], + [ + 0.85708, + 0.67355 + ], + [ + 0.85792, + 0.68136 + ], + [ + 0.85792, + 0.68359 + ], + [ + 0.8575, + 0.68806 + ], + [ + 0.85333, + 0.70871 + ], + [ + 0.85167, + 0.71038 + ], + [ + 0.84458, + 0.71038 + ], + [ + 0.84375, + 0.70982 + ], + [ + 0.84292, + 0.70871 + ], + [ + 0.83792, + 0.68359 + ] + ], + "hintCenter": [ + 0.84801, + 0.68423 + ] + }, + { + "id": "goldfish_bag", + "kind": "goldfish_bag", + "label": "Goldfish", + "sprite": "baked/dense_1_goldfish_bag.png", + "chip": "baked/chip_goldfish_bag.png", + "pos": [ + 0.22229, + 0.69252 + ], + "size": [ + 0.04125, + 0.0692 + ], + "rotation": 0, + "polygon": [ + [ + 0.20167, + 0.72098 + ], + [ + 0.20333, + 0.70145 + ], + [ + 0.20417, + 0.69754 + ], + [ + 0.21333, + 0.66071 + ], + [ + 0.21458, + 0.65904 + ], + [ + 0.21542, + 0.65848 + ], + [ + 0.22208, + 0.65792 + ], + [ + 0.22333, + 0.65792 + ], + [ + 0.23125, + 0.6596 + ], + [ + 0.24, + 0.69754 + ], + [ + 0.24083, + 0.70201 + ], + [ + 0.2425, + 0.71931 + ], + [ + 0.2425, + 0.7221 + ], + [ + 0.24125, + 0.72377 + ], + [ + 0.22917, + 0.726 + ], + [ + 0.22458, + 0.72656 + ], + [ + 0.22083, + 0.72656 + ], + [ + 0.21667, + 0.726 + ], + [ + 0.20333, + 0.72377 + ], + [ + 0.20208, + 0.72266 + ] + ], + "hintCenter": [ + 0.22215, + 0.70092 + ] + }, + { + "id": "rubber_duck#2", + "kind": "rubber_duck", + "label": "Rubber Duck", + "sprite": "baked/dense_1_rubber_duck_2.png", + "chip": "baked/chip_rubber_duck.png", + "pos": [ + 0.22417, + 0.50391 + ], + "size": [ + 0.04833, + 0.04129 + ], + "rotation": 0, + "polygon": [ + [ + 0.2, + 0.48549 + ], + [ + 0.20042, + 0.48493 + ], + [ + 0.20792, + 0.48326 + ], + [ + 0.21, + 0.48326 + ], + [ + 0.2225, + 0.48828 + ], + [ + 0.24792, + 0.50502 + ], + [ + 0.24792, + 0.50614 + ], + [ + 0.245, + 0.51786 + ], + [ + 0.24458, + 0.51842 + ], + [ + 0.24, + 0.52176 + ], + [ + 0.23833, + 0.52232 + ], + [ + 0.235, + 0.52344 + ], + [ + 0.225, + 0.524 + ], + [ + 0.21, + 0.52121 + ], + [ + 0.20792, + 0.52065 + ], + [ + 0.20542, + 0.51953 + ], + [ + 0.2025, + 0.50558 + ] + ], + "hintCenter": [ + 0.22205, + 0.5094 + ] + }, + { + "id": "rubber_duck#3", + "kind": "rubber_duck", + "label": "Rubber Duck", + "sprite": "baked/dense_1_rubber_duck_3.png", + "chip": "baked/chip_rubber_duck.png", + "pos": [ + 0.46083, + 0.93136 + ], + "size": [ + 0.03167, + 0.04353 + ], + "rotation": 0, + "polygon": [ + [ + 0.445, + 0.9202 + ], + [ + 0.45208, + 0.91071 + ], + [ + 0.45292, + 0.91016 + ], + [ + 0.45417, + 0.9096 + ], + [ + 0.45875, + 0.9096 + ], + [ + 0.46, + 0.91016 + ], + [ + 0.46125, + 0.91127 + ], + [ + 0.47542, + 0.92634 + ], + [ + 0.47625, + 0.92913 + ], + [ + 0.47625, + 0.93638 + ], + [ + 0.47417, + 0.94364 + ], + [ + 0.47125, + 0.94922 + ], + [ + 0.47083, + 0.94978 + ], + [ + 0.46792, + 0.95257 + ], + [ + 0.46667, + 0.95257 + ], + [ + 0.45875, + 0.95201 + ], + [ + 0.44833, + 0.95033 + ], + [ + 0.44667, + 0.94866 + ], + [ + 0.44542, + 0.94587 + ], + [ + 0.445, + 0.9442 + ] + ], + "hintCenter": [ + 0.4595, + 0.93423 + ] + }, + { + "id": "blue_balloon", + "kind": "blue_balloon", + "label": "Balloon", + "sprite": "baked/dense_1_blue_balloon.png", + "chip": "baked/chip_blue_balloon.png", + "pos": [ + 0.97958, + 0.28599 + ], + "size": [ + 0.02833, + 0.09766 + ], + "rotation": 0, + "polygon": [ + [ + 0.96542, + 0.25502 + ], + [ + 0.96583, + 0.25223 + ], + [ + 0.96667, + 0.24888 + ], + [ + 0.96792, + 0.24554 + ], + [ + 0.96917, + 0.2433 + ], + [ + 0.97208, + 0.23996 + ], + [ + 0.97458, + 0.23828 + ], + [ + 0.9775, + 0.23717 + ], + [ + 0.98125, + 0.23717 + ], + [ + 0.98542, + 0.23884 + ], + [ + 0.9875, + 0.24051 + ], + [ + 0.99, + 0.24386 + ], + [ + 0.99083, + 0.24554 + ], + [ + 0.9925, + 0.25 + ], + [ + 0.99333, + 0.25391 + ], + [ + 0.99333, + 0.26674 + ], + [ + 0.9775, + 0.33371 + ], + [ + 0.97667, + 0.33315 + ], + [ + 0.96583, + 0.2673 + ], + [ + 0.96542, + 0.26451 + ] + ], + "hintCenter": [ + 0.97937, + 0.26362 + ] + }, + { + "id": "blue_balloon#2", + "kind": "blue_balloon", + "label": "Balloon", + "sprite": "baked/dense_1_blue_balloon_2.png", + "chip": "baked/chip_blue_balloon.png", + "pos": [ + 0.26667, + 0.82701 + ], + "size": [ + 0.02833, + 0.07478 + ], + "rotation": 0, + "polygon": [ + [ + 0.2525, + 0.80859 + ], + [ + 0.25375, + 0.8019 + ], + [ + 0.25542, + 0.79743 + ], + [ + 0.25792, + 0.79353 + ], + [ + 0.26167, + 0.79074 + ], + [ + 0.265, + 0.78962 + ], + [ + 0.26833, + 0.78962 + ], + [ + 0.27042, + 0.79018 + ], + [ + 0.27417, + 0.79185 + ], + [ + 0.27542, + 0.79297 + ], + [ + 0.27833, + 0.79855 + ], + [ + 0.27958, + 0.8019 + ], + [ + 0.28042, + 0.80636 + ], + [ + 0.28042, + 0.81752 + ], + [ + 0.27375, + 0.86328 + ], + [ + 0.27208, + 0.86272 + ], + [ + 0.255, + 0.82645 + ], + [ + 0.25458, + 0.82533 + ], + [ + 0.25292, + 0.81752 + ], + [ + 0.2525, + 0.81417 + ] + ], + "hintCenter": [ + 0.26666, + 0.8146 + ] + }, + { + "id": "grape_lollipop", + "kind": "grape_lollipop", + "label": "Lollipop", + "sprite": "baked/dense_1_grape_lollipop.png", + "chip": "baked/chip_grape_lollipop.png", + "pos": [ + 0.57792, + 0.40988 + ], + "size": [ + 0.0275, + 0.06641 + ], + "rotation": 0, + "polygon": [ + [ + 0.56417, + 0.39062 + ], + [ + 0.565, + 0.38728 + ], + [ + 0.56667, + 0.38337 + ], + [ + 0.56917, + 0.38002 + ], + [ + 0.57208, + 0.37779 + ], + [ + 0.57458, + 0.37667 + ], + [ + 0.58083, + 0.37667 + ], + [ + 0.5825, + 0.37723 + ], + [ + 0.585, + 0.37891 + ], + [ + 0.58625, + 0.38002 + ], + [ + 0.58875, + 0.38337 + ], + [ + 0.59042, + 0.38728 + ], + [ + 0.59125, + 0.39062 + ], + [ + 0.59125, + 0.39788 + ], + [ + 0.59083, + 0.40011 + ], + [ + 0.58917, + 0.40513 + ], + [ + 0.57417, + 0.44196 + ], + [ + 0.57333, + 0.44252 + ], + [ + 0.57167, + 0.44196 + ], + [ + 0.56417, + 0.39788 + ] + ], + "hintCenter": [ + 0.57745, + 0.39749 + ] + }, + { + "id": "pinwheel", + "kind": "pinwheel", + "label": "Pinwheel", + "sprite": "baked/dense_1_pinwheel.png", + "chip": "baked/chip_pinwheel.png", + "pos": [ + 0.40063, + 0.18666 + ], + "size": [ + 0.03458, + 0.05748 + ], + "rotation": 0, + "polygon": [ + [ + 0.38333, + 0.17132 + ], + [ + 0.38417, + 0.1702 + ], + [ + 0.38583, + 0.16853 + ], + [ + 0.38958, + 0.16518 + ], + [ + 0.39292, + 0.1635 + ], + [ + 0.40667, + 0.15792 + ], + [ + 0.4075, + 0.15792 + ], + [ + 0.40833, + 0.15904 + ], + [ + 0.40917, + 0.16071 + ], + [ + 0.41083, + 0.16518 + ], + [ + 0.4125, + 0.1702 + ], + [ + 0.4175, + 0.18917 + ], + [ + 0.40458, + 0.21429 + ], + [ + 0.40375, + 0.21484 + ], + [ + 0.4025, + 0.21484 + ], + [ + 0.39375, + 0.2048 + ], + [ + 0.39333, + 0.20424 + ], + [ + 0.39125, + 0.20033 + ], + [ + 0.38917, + 0.1942 + ], + [ + 0.38333, + 0.17188 + ] + ], + "hintCenter": [ + 0.40041, + 0.18225 + ] + }, + { + "id": "pinwheel#2", + "kind": "pinwheel", + "label": "Pinwheel", + "sprite": "baked/dense_1_pinwheel_2.png", + "chip": "baked/chip_pinwheel.png", + "pos": [ + 0.50396, + 0.4827 + ], + "size": [ + 0.02875, + 0.05134 + ], + "rotation": 0, + "polygon": [ + [ + 0.48958, + 0.4615 + ], + [ + 0.49042, + 0.46038 + ], + [ + 0.50792, + 0.45703 + ], + [ + 0.5125, + 0.45703 + ], + [ + 0.51292, + 0.45759 + ], + [ + 0.5175, + 0.47935 + ], + [ + 0.51792, + 0.4827 + ], + [ + 0.51792, + 0.49051 + ], + [ + 0.50917, + 0.5067 + ], + [ + 0.50833, + 0.50781 + ], + [ + 0.50708, + 0.50781 + ], + [ + 0.49042, + 0.4933 + ], + [ + 0.48958, + 0.46875 + ] + ], + "hintCenter": [ + 0.50365, + 0.48173 + ] + }, + { + "id": "pinwheel#3", + "kind": "pinwheel", + "label": "Pinwheel", + "sprite": "baked/dense_1_pinwheel_3.png", + "chip": "baked/chip_pinwheel.png", + "pos": [ + 0.65292, + 0.47852 + ], + "size": [ + 0.035, + 0.09542 + ], + "rotation": 0, + "polygon": [ + [ + 0.63542, + 0.46094 + ], + [ + 0.64333, + 0.43471 + ], + [ + 0.64375, + 0.43359 + ], + [ + 0.64417, + 0.43304 + ], + [ + 0.64542, + 0.43136 + ], + [ + 0.64583, + 0.4308 + ], + [ + 0.64667, + 0.4308 + ], + [ + 0.66333, + 0.43862 + ], + [ + 0.66708, + 0.44085 + ], + [ + 0.67, + 0.44308 + ], + [ + 0.67, + 0.44475 + ], + [ + 0.65208, + 0.52065 + ], + [ + 0.65083, + 0.52567 + ], + [ + 0.64958, + 0.52511 + ], + [ + 0.63542, + 0.46205 + ] + ], + "hintCenter": [ + 0.65263, + 0.46161 + ] + }, + { + "id": "kite", + "kind": "kite", + "label": "Kite", + "sprite": "baked/dense_1_kite.png", + "chip": "baked/chip_kite.png", + "pos": [ + 0.75042, + 0.26674 + ], + "size": [ + 0.05083, + 0.10045 + ], + "rotation": 0, + "polygon": [ + [ + 0.725, + 0.25725 + ], + [ + 0.72833, + 0.24498 + ], + [ + 0.72917, + 0.24275 + ], + [ + 0.74333, + 0.22098 + ], + [ + 0.74667, + 0.21652 + ], + [ + 0.7475, + 0.21652 + ], + [ + 0.75167, + 0.22154 + ], + [ + 0.75833, + 0.22991 + ], + [ + 0.76542, + 0.23884 + ], + [ + 0.76708, + 0.24107 + ], + [ + 0.7675, + 0.24219 + ], + [ + 0.77125, + 0.25335 + ], + [ + 0.77542, + 0.31027 + ], + [ + 0.77542, + 0.31641 + ], + [ + 0.77458, + 0.31641 + ], + [ + 0.75458, + 0.30971 + ], + [ + 0.75333, + 0.30915 + ], + [ + 0.7525, + 0.30859 + ], + [ + 0.75208, + 0.30804 + ], + [ + 0.74458, + 0.29576 + ] + ], + "hintCenter": [ + 0.74953, + 0.25543 + ] + }, + { + "id": "kite#2", + "kind": "kite", + "label": "Kite", + "sprite": "baked/dense_1_kite_2.png", + "chip": "baked/chip_kite.png", + "pos": [ + 0.34021, + 0.8856 + ], + "size": [ + 0.04708, + 0.09821 + ], + "rotation": 0, + "polygon": [ + [ + 0.31667, + 0.87165 + ], + [ + 0.3175, + 0.86328 + ], + [ + 0.32167, + 0.83817 + ], + [ + 0.32208, + 0.83705 + ], + [ + 0.32375, + 0.8365 + ], + [ + 0.32458, + 0.8365 + ], + [ + 0.34667, + 0.84542 + ], + [ + 0.34792, + 0.84598 + ], + [ + 0.35042, + 0.84821 + ], + [ + 0.35083, + 0.84877 + ], + [ + 0.35333, + 0.85268 + ], + [ + 0.35542, + 0.85658 + ], + [ + 0.35583, + 0.85826 + ], + [ + 0.36292, + 0.9202 + ], + [ + 0.36333, + 0.93192 + ], + [ + 0.36333, + 0.93248 + ], + [ + 0.3625, + 0.93415 + ], + [ + 0.35917, + 0.93415 + ], + [ + 0.31708, + 0.89007 + ], + [ + 0.31667, + 0.88951 + ] + ], + "hintCenter": [ + 0.33717, + 0.87078 + ] + }, + { + "id": "top_hat", + "kind": "top_hat", + "label": "Top Hat", + "sprite": "baked/dense_1_top_hat.png", + "chip": "baked/chip_top_hat.png", + "pos": [ + 0.62583, + 0.54883 + ], + "size": [ + 0.03917, + 0.04408 + ], + "rotation": 0, + "polygon": [ + [ + 0.60625, + 0.55971 + ], + [ + 0.61333, + 0.53348 + ], + [ + 0.61792, + 0.52679 + ], + [ + 0.63, + 0.52679 + ], + [ + 0.6325, + 0.52734 + ], + [ + 0.63542, + 0.52846 + ], + [ + 0.63708, + 0.52958 + ], + [ + 0.63833, + 0.53181 + ], + [ + 0.645, + 0.55971 + ], + [ + 0.645, + 0.56138 + ], + [ + 0.64333, + 0.56473 + ], + [ + 0.63917, + 0.56752 + ], + [ + 0.63583, + 0.56864 + ], + [ + 0.63042, + 0.56975 + ], + [ + 0.62333, + 0.57031 + ], + [ + 0.61875, + 0.56975 + ], + [ + 0.61333, + 0.56808 + ], + [ + 0.61083, + 0.56696 + ], + [ + 0.60792, + 0.56473 + ], + [ + 0.60625, + 0.5625 + ] + ], + "hintCenter": [ + 0.62586, + 0.55088 + ] + }, + { + "id": "silver_whistle", + "kind": "silver_whistle", + "label": "Whistle", + "sprite": "baked/dense_1_silver_whistle.png", + "chip": "baked/chip_silver_whistle.png", + "pos": [ + 0.82437, + 0.61384 + ], + "size": [ + 0.02625, + 0.07143 + ], + "rotation": 0, + "polygon": [ + [ + 0.81125, + 0.62612 + ], + [ + 0.81792, + 0.58594 + ], + [ + 0.81917, + 0.58036 + ], + [ + 0.82, + 0.57868 + ], + [ + 0.82125, + 0.57812 + ], + [ + 0.83208, + 0.59208 + ], + [ + 0.83292, + 0.59542 + ], + [ + 0.835, + 0.60435 + ], + [ + 0.83583, + 0.60826 + ], + [ + 0.83667, + 0.61272 + ], + [ + 0.83708, + 0.61551 + ], + [ + 0.83708, + 0.62388 + ], + [ + 0.83667, + 0.62612 + ], + [ + 0.82958, + 0.64621 + ], + [ + 0.82792, + 0.64732 + ], + [ + 0.825, + 0.64844 + ], + [ + 0.82208, + 0.649 + ], + [ + 0.82083, + 0.64788 + ], + [ + 0.81167, + 0.63337 + ], + [ + 0.81125, + 0.6317 + ] + ], + "hintCenter": [ + 0.82326, + 0.62155 + ] + }, + { + "id": "silver_whistle#2", + "kind": "silver_whistle", + "label": "Whistle", + "sprite": "baked/dense_1_silver_whistle_2.png", + "chip": "baked/chip_silver_whistle.png", + "pos": [ + 0.93292, + 0.71652 + ], + "size": [ + 0.03583, + 0.03571 + ], + "rotation": 0, + "polygon": [ + [ + 0.915, + 0.7221 + ], + [ + 0.91542, + 0.72098 + ], + [ + 0.92625, + 0.70647 + ], + [ + 0.93083, + 0.70089 + ], + [ + 0.93208, + 0.69978 + ], + [ + 0.93458, + 0.69866 + ], + [ + 0.93667, + 0.69866 + ], + [ + 0.94625, + 0.69978 + ], + [ + 0.94833, + 0.70257 + ], + [ + 0.95042, + 0.7115 + ], + [ + 0.95042, + 0.71819 + ], + [ + 0.94917, + 0.7221 + ], + [ + 0.94708, + 0.72489 + ], + [ + 0.94583, + 0.726 + ], + [ + 0.94375, + 0.72712 + ], + [ + 0.92542, + 0.73382 + ], + [ + 0.92333, + 0.73326 + ], + [ + 0.91708, + 0.72879 + ], + [ + 0.91542, + 0.72656 + ], + [ + 0.915, + 0.72489 + ] + ], + "hintCenter": [ + 0.93397, + 0.71583 + ] + }, + { + "id": "silver_whistle#3", + "kind": "silver_whistle", + "label": "Whistle", + "sprite": "baked/dense_1_silver_whistle_3.png", + "chip": "baked/chip_silver_whistle.png", + "pos": [ + 0.85333, + 0.9707 + ], + "size": [ + 0.05833, + 0.03292 + ], + "rotation": 0, + "polygon": [ + [ + 0.82417, + 0.9721 + ], + [ + 0.82667, + 0.96875 + ], + [ + 0.82833, + 0.96763 + ], + [ + 0.85, + 0.9548 + ], + [ + 0.86, + 0.95424 + ], + [ + 0.86208, + 0.95424 + ], + [ + 0.865, + 0.95536 + ], + [ + 0.86792, + 0.95759 + ], + [ + 0.87333, + 0.96373 + ], + [ + 0.88, + 0.97154 + ], + [ + 0.88208, + 0.97433 + ], + [ + 0.88208, + 0.97824 + ], + [ + 0.88167, + 0.98103 + ], + [ + 0.88083, + 0.98214 + ], + [ + 0.87417, + 0.98661 + ], + [ + 0.8725, + 0.98661 + ], + [ + 0.83125, + 0.98047 + ], + [ + 0.82833, + 0.97991 + ], + [ + 0.82583, + 0.97879 + ], + [ + 0.82417, + 0.976 + ] + ], + "hintCenter": [ + 0.8556, + 0.97053 + ] + } + ] +} diff --git a/assets/levels/funfair/scene.dense.2.json b/assets/levels/funfair/scene.dense.2.json new file mode 100644 index 0000000..b948b62 --- /dev/null +++ b/assets/levels/funfair/scene.dense.2.json @@ -0,0 +1,2090 @@ +{ + "sceneId": "funfair", + "name": "Funfair", + "background": "background_dense.jpg", + "size": { + "w": 2400, + "h": 1792 + }, + "objectCount": 21, + "objects": [ + { + "id": "teddy_bear", + "kind": "teddy_bear", + "label": "Teddy Bear", + "sprite": "baked/dense_2_teddy_bear.png", + "chip": "baked/chip_teddy_bear.png", + "pos": [ + 0.36562, + 0.07533 + ], + "size": [ + 0.03542, + 0.05469 + ], + "rotation": 0, + "polygon": [ + [ + 0.34792, + 0.05413 + ], + [ + 0.34917, + 0.05134 + ], + [ + 0.35, + 0.05022 + ], + [ + 0.35083, + 0.04967 + ], + [ + 0.35208, + 0.04911 + ], + [ + 0.37083, + 0.04799 + ], + [ + 0.3725, + 0.04799 + ], + [ + 0.37375, + 0.04855 + ], + [ + 0.375, + 0.04967 + ], + [ + 0.37583, + 0.05134 + ], + [ + 0.37625, + 0.05301 + ], + [ + 0.38292, + 0.09487 + ], + [ + 0.38292, + 0.09598 + ], + [ + 0.38167, + 0.09766 + ], + [ + 0.38042, + 0.09821 + ], + [ + 0.36792, + 0.10212 + ], + [ + 0.36667, + 0.10156 + ], + [ + 0.36042, + 0.0971 + ], + [ + 0.35375, + 0.09096 + ], + [ + 0.34792, + 0.05692 + ] + ], + "hintCenter": [ + 0.36643, + 0.07392 + ] + }, + { + "id": "cotton_candy", + "kind": "cotton_candy", + "label": "Cotton Candy", + "sprite": "baked/dense_2_cotton_candy.png", + "chip": "baked/chip_cotton_candy.png", + "pos": [ + 0.31938, + 0.24163 + ], + "size": [ + 0.02792, + 0.04799 + ], + "rotation": 0, + "polygon": [ + [ + 0.30583, + 0.23717 + ], + [ + 0.31, + 0.22656 + ], + [ + 0.31167, + 0.22433 + ], + [ + 0.31792, + 0.21875 + ], + [ + 0.32042, + 0.21763 + ], + [ + 0.32292, + 0.21819 + ], + [ + 0.32625, + 0.22154 + ], + [ + 0.32958, + 0.22768 + ], + [ + 0.33042, + 0.22991 + ], + [ + 0.33292, + 0.23884 + ], + [ + 0.33292, + 0.2433 + ], + [ + 0.33208, + 0.25223 + ], + [ + 0.33125, + 0.25502 + ], + [ + 0.32625, + 0.26116 + ], + [ + 0.32083, + 0.26507 + ], + [ + 0.32, + 0.26507 + ], + [ + 0.31375, + 0.26228 + ], + [ + 0.30792, + 0.25502 + ], + [ + 0.30667, + 0.25223 + ], + [ + 0.30542, + 0.24219 + ] + ], + "hintCenter": [ + 0.31952, + 0.24182 + ] + }, + { + "id": "popcorn", + "kind": "popcorn", + "label": "Popcorn", + "sprite": "baked/dense_2_popcorn.png", + "chip": "baked/chip_popcorn.png", + "pos": [ + 0.3975, + 0.15653 + ], + "size": [ + 0.02917, + 0.0519 + ], + "rotation": 0, + "polygon": [ + [ + 0.38292, + 0.14509 + ], + [ + 0.38375, + 0.14174 + ], + [ + 0.385, + 0.13783 + ], + [ + 0.39292, + 0.13114 + ], + [ + 0.39917, + 0.13058 + ], + [ + 0.40083, + 0.13114 + ], + [ + 0.40625, + 0.13504 + ], + [ + 0.41125, + 0.14007 + ], + [ + 0.41167, + 0.14118 + ], + [ + 0.41083, + 0.15402 + ], + [ + 0.41, + 0.1635 + ], + [ + 0.40875, + 0.17578 + ], + [ + 0.40833, + 0.17746 + ], + [ + 0.4075, + 0.17857 + ], + [ + 0.40333, + 0.18192 + ], + [ + 0.39375, + 0.18192 + ], + [ + 0.38917, + 0.18136 + ], + [ + 0.3875, + 0.1808 + ], + [ + 0.38708, + 0.18025 + ], + [ + 0.38292, + 0.14621 + ] + ], + "hintCenter": [ + 0.3967, + 0.15657 + ] + }, + { + "id": "ice_cream", + "kind": "ice_cream", + "label": "Ice Cream", + "sprite": "baked/dense_2_ice_cream.png", + "chip": "baked/chip_ice_cream.png", + "pos": [ + 0.19958, + 0.69336 + ], + "size": [ + 0.03083, + 0.06083 + ], + "rotation": 0, + "polygon": [ + [ + 0.18417, + 0.67634 + ], + [ + 0.18458, + 0.67411 + ], + [ + 0.18625, + 0.66964 + ], + [ + 0.19, + 0.66518 + ], + [ + 0.19083, + 0.66462 + ], + [ + 0.19792, + 0.66295 + ], + [ + 0.19875, + 0.66295 + ], + [ + 0.20375, + 0.66629 + ], + [ + 0.20625, + 0.6702 + ], + [ + 0.20958, + 0.67578 + ], + [ + 0.21083, + 0.67857 + ], + [ + 0.21458, + 0.71987 + ], + [ + 0.21458, + 0.72154 + ], + [ + 0.21375, + 0.72321 + ], + [ + 0.2125, + 0.72321 + ], + [ + 0.21083, + 0.72154 + ], + [ + 0.18875, + 0.69531 + ], + [ + 0.18708, + 0.69196 + ], + [ + 0.18458, + 0.68415 + ], + [ + 0.18417, + 0.68192 + ] + ], + "hintCenter": [ + 0.20198, + 0.69498 + ] + }, + { + "id": "ice_cream#2", + "kind": "ice_cream", + "label": "Ice Cream", + "sprite": "baked/dense_2_ice_cream_2.png", + "chip": "baked/chip_ice_cream.png", + "pos": [ + 0.88625, + 0.70954 + ], + "size": [ + 0.04167, + 0.03739 + ], + "rotation": 0, + "polygon": [ + [ + 0.86542, + 0.70257 + ], + [ + 0.86583, + 0.70089 + ], + [ + 0.86708, + 0.69754 + ], + [ + 0.87042, + 0.69308 + ], + [ + 0.87167, + 0.69196 + ], + [ + 0.8775, + 0.69085 + ], + [ + 0.87833, + 0.69085 + ], + [ + 0.8875, + 0.69699 + ], + [ + 0.90542, + 0.72321 + ], + [ + 0.90667, + 0.72545 + ], + [ + 0.90667, + 0.72712 + ], + [ + 0.90583, + 0.72768 + ], + [ + 0.90333, + 0.72768 + ], + [ + 0.87708, + 0.72321 + ], + [ + 0.87625, + 0.72266 + ], + [ + 0.86958, + 0.71652 + ], + [ + 0.86792, + 0.71484 + ], + [ + 0.86708, + 0.71373 + ], + [ + 0.86583, + 0.71038 + ], + [ + 0.86542, + 0.70871 + ] + ], + "hintCenter": [ + 0.88193, + 0.7104 + ] + }, + { + "id": "goldfish_bag", + "kind": "goldfish_bag", + "label": "Goldfish", + "sprite": "baked/dense_2_goldfish_bag.png", + "chip": "baked/chip_goldfish_bag.png", + "pos": [ + 0.19917, + 0.42188 + ], + "size": [ + 0.0325, + 0.05134 + ], + "rotation": 0, + "polygon": [ + [ + 0.18292, + 0.44085 + ], + [ + 0.185, + 0.42913 + ], + [ + 0.18542, + 0.4269 + ], + [ + 0.19167, + 0.399 + ], + [ + 0.19208, + 0.39844 + ], + [ + 0.19292, + 0.39788 + ], + [ + 0.19667, + 0.39621 + ], + [ + 0.20042, + 0.39621 + ], + [ + 0.205, + 0.39844 + ], + [ + 0.20542, + 0.399 + ], + [ + 0.21208, + 0.42746 + ], + [ + 0.215, + 0.44141 + ], + [ + 0.215, + 0.44252 + ], + [ + 0.21417, + 0.44364 + ], + [ + 0.21333, + 0.4442 + ], + [ + 0.2025, + 0.44699 + ], + [ + 0.19875, + 0.44699 + ], + [ + 0.18375, + 0.44364 + ], + [ + 0.18333, + 0.44308 + ], + [ + 0.18292, + 0.44252 + ] + ], + "hintCenter": [ + 0.19879, + 0.4261 + ] + }, + { + "id": "rubber_duck", + "kind": "rubber_duck", + "label": "Rubber Duck", + "sprite": "baked/dense_2_rubber_duck.png", + "chip": "baked/chip_rubber_duck.png", + "pos": [ + 0.74, + 0.34598 + ], + "size": [ + 0.03167, + 0.04129 + ], + "rotation": 0, + "polygon": [ + [ + 0.72417, + 0.3365 + ], + [ + 0.72458, + 0.33538 + ], + [ + 0.73208, + 0.32701 + ], + [ + 0.73375, + 0.32589 + ], + [ + 0.73667, + 0.32533 + ], + [ + 0.73958, + 0.32645 + ], + [ + 0.75292, + 0.33929 + ], + [ + 0.75458, + 0.34263 + ], + [ + 0.75542, + 0.34654 + ], + [ + 0.755, + 0.35324 + ], + [ + 0.75417, + 0.35658 + ], + [ + 0.75292, + 0.35938 + ], + [ + 0.75083, + 0.36217 + ], + [ + 0.74792, + 0.3644 + ], + [ + 0.745, + 0.36551 + ], + [ + 0.73917, + 0.36607 + ], + [ + 0.73542, + 0.36551 + ], + [ + 0.73208, + 0.3644 + ], + [ + 0.72792, + 0.36049 + ], + [ + 0.72625, + 0.35547 + ] + ], + "hintCenter": [ + 0.73925, + 0.34787 + ] + }, + { + "id": "blue_balloon", + "kind": "blue_balloon", + "label": "Balloon", + "sprite": "baked/dense_2_blue_balloon.png", + "chip": "baked/chip_blue_balloon.png", + "pos": [ + 0.70958, + 0.07617 + ], + "size": [ + 0.03, + 0.05748 + ], + "rotation": 0, + "polygon": [ + [ + 0.695, + 0.06473 + ], + [ + 0.69625, + 0.05915 + ], + [ + 0.69875, + 0.05357 + ], + [ + 0.70208, + 0.04967 + ], + [ + 0.70625, + 0.04743 + ], + [ + 0.71208, + 0.04743 + ], + [ + 0.71708, + 0.05022 + ], + [ + 0.72083, + 0.05525 + ], + [ + 0.7225, + 0.05915 + ], + [ + 0.72375, + 0.06473 + ], + [ + 0.72417, + 0.07199 + ], + [ + 0.72292, + 0.0798 + ], + [ + 0.72167, + 0.08426 + ], + [ + 0.71958, + 0.08873 + ], + [ + 0.70958, + 0.10435 + ], + [ + 0.70917, + 0.10435 + ], + [ + 0.69875, + 0.08761 + ], + [ + 0.69667, + 0.08259 + ], + [ + 0.69583, + 0.0798 + ], + [ + 0.69458, + 0.07087 + ] + ], + "hintCenter": [ + 0.70937, + 0.07184 + ] + }, + { + "id": "blue_balloon#2", + "kind": "blue_balloon", + "label": "Balloon", + "sprite": "baked/dense_2_blue_balloon_2.png", + "chip": "baked/chip_blue_balloon.png", + "pos": [ + 0.02771, + 0.34821 + ], + "size": [ + 0.03042, + 0.10714 + ], + "rotation": 0, + "polygon": [ + [ + 0.01292, + 0.31194 + ], + [ + 0.01375, + 0.30804 + ], + [ + 0.01542, + 0.30357 + ], + [ + 0.01875, + 0.29855 + ], + [ + 0.02208, + 0.29576 + ], + [ + 0.02458, + 0.29464 + ], + [ + 0.03, + 0.29464 + ], + [ + 0.03375, + 0.29632 + ], + [ + 0.03625, + 0.29855 + ], + [ + 0.03875, + 0.3019 + ], + [ + 0.04125, + 0.30804 + ], + [ + 0.04208, + 0.3125 + ], + [ + 0.0425, + 0.31975 + ], + [ + 0.04208, + 0.32422 + ], + [ + 0.03, + 0.3923 + ], + [ + 0.02875, + 0.39844 + ], + [ + 0.02792, + 0.40067 + ], + [ + 0.02667, + 0.40067 + ], + [ + 0.01333, + 0.32533 + ], + [ + 0.0125, + 0.31808 + ] + ], + "hintCenter": [ + 0.02755, + 0.32234 + ] + }, + { + "id": "grape_lollipop", + "kind": "grape_lollipop", + "label": "Lollipop", + "sprite": "baked/dense_2_grape_lollipop.png", + "chip": "baked/chip_grape_lollipop.png", + "pos": [ + 0.30958, + 0.14955 + ], + "size": [ + 0.02083, + 0.05469 + ], + "rotation": 0, + "polygon": [ + [ + 0.29917, + 0.13393 + ], + [ + 0.29958, + 0.12946 + ], + [ + 0.30042, + 0.12723 + ], + [ + 0.30167, + 0.125 + ], + [ + 0.305, + 0.12277 + ], + [ + 0.30667, + 0.12221 + ], + [ + 0.31167, + 0.12221 + ], + [ + 0.31458, + 0.12388 + ], + [ + 0.31708, + 0.12667 + ], + [ + 0.31875, + 0.12946 + ], + [ + 0.31917, + 0.1317 + ], + [ + 0.31958, + 0.14062 + ], + [ + 0.31958, + 0.14174 + ], + [ + 0.3175, + 0.17522 + ], + [ + 0.31667, + 0.17634 + ], + [ + 0.31458, + 0.17634 + ], + [ + 0.31417, + 0.17578 + ], + [ + 0.30083, + 0.14676 + ], + [ + 0.3, + 0.14453 + ], + [ + 0.29917, + 0.13951 + ] + ], + "hintCenter": [ + 0.31, + 0.14026 + ] + }, + { + "id": "grape_lollipop#2", + "kind": "grape_lollipop", + "label": "Lollipop", + "sprite": "baked/dense_2_grape_lollipop_2.png", + "chip": "baked/chip_grape_lollipop.png", + "pos": [ + 0.55458, + 0.36272 + ], + "size": [ + 0.02417, + 0.04799 + ], + "rotation": 0, + "polygon": [ + [ + 0.5425, + 0.351 + ], + [ + 0.54333, + 0.34766 + ], + [ + 0.54458, + 0.34487 + ], + [ + 0.54708, + 0.34152 + ], + [ + 0.55042, + 0.33929 + ], + [ + 0.55167, + 0.33873 + ], + [ + 0.5575, + 0.33873 + ], + [ + 0.56, + 0.33984 + ], + [ + 0.56125, + 0.34096 + ], + [ + 0.56417, + 0.34487 + ], + [ + 0.56542, + 0.34766 + ], + [ + 0.56625, + 0.35156 + ], + [ + 0.56625, + 0.35714 + ], + [ + 0.56542, + 0.36105 + ], + [ + 0.56375, + 0.36496 + ], + [ + 0.55125, + 0.38393 + ], + [ + 0.54958, + 0.3856 + ], + [ + 0.5475, + 0.38616 + ], + [ + 0.54708, + 0.3856 + ], + [ + 0.5425, + 0.35714 + ] + ], + "hintCenter": [ + 0.55409, + 0.35629 + ] + }, + { + "id": "pinwheel", + "kind": "pinwheel", + "label": "Pinwheel", + "sprite": "baked/dense_2_pinwheel.png", + "chip": "baked/chip_pinwheel.png", + "pos": [ + 0.57979, + 0.4096 + ], + "size": [ + 0.03458, + 0.06473 + ], + "rotation": 0, + "polygon": [ + [ + 0.5625, + 0.39844 + ], + [ + 0.56875, + 0.38114 + ], + [ + 0.56958, + 0.37891 + ], + [ + 0.57, + 0.37835 + ], + [ + 0.58625, + 0.37723 + ], + [ + 0.58792, + 0.37723 + ], + [ + 0.58833, + 0.37779 + ], + [ + 0.59583, + 0.39621 + ], + [ + 0.59667, + 0.39844 + ], + [ + 0.59667, + 0.399 + ], + [ + 0.58875, + 0.41797 + ], + [ + 0.57625, + 0.44085 + ], + [ + 0.57583, + 0.44141 + ], + [ + 0.57375, + 0.44141 + ], + [ + 0.5625, + 0.39955 + ] + ], + "hintCenter": [ + 0.57925, + 0.40043 + ] + }, + { + "id": "pinwheel#2", + "kind": "pinwheel", + "label": "Pinwheel", + "sprite": "baked/dense_2_pinwheel_2.png", + "chip": "baked/chip_pinwheel.png", + "pos": [ + 0.49667, + 0.47377 + ], + "size": [ + 0.03167, + 0.06027 + ], + "rotation": 0, + "polygon": [ + [ + 0.48083, + 0.46708 + ], + [ + 0.48417, + 0.44643 + ], + [ + 0.4975, + 0.44364 + ], + [ + 0.49875, + 0.44364 + ], + [ + 0.49958, + 0.4442 + ], + [ + 0.50708, + 0.45201 + ], + [ + 0.51125, + 0.45703 + ], + [ + 0.51208, + 0.45871 + ], + [ + 0.50875, + 0.47656 + ], + [ + 0.50833, + 0.47879 + ], + [ + 0.50792, + 0.48047 + ], + [ + 0.5025, + 0.50223 + ], + [ + 0.50208, + 0.50279 + ], + [ + 0.50125, + 0.50335 + ], + [ + 0.50042, + 0.50335 + ], + [ + 0.5, + 0.50279 + ], + [ + 0.48917, + 0.48438 + ], + [ + 0.48083, + 0.46875 + ] + ], + "hintCenter": [ + 0.49699, + 0.46728 + ] + }, + { + "id": "pinwheel#3", + "kind": "pinwheel", + "label": "Pinwheel", + "sprite": "baked/dense_2_pinwheel_3.png", + "chip": "baked/chip_pinwheel.png", + "pos": [ + 0.02187, + 0.88644 + ], + "size": [ + 0.03875, + 0.05748 + ], + "rotation": 0, + "polygon": [ + [ + 0.0025, + 0.87891 + ], + [ + 0.01375, + 0.8577 + ], + [ + 0.03292, + 0.8577 + ], + [ + 0.04083, + 0.87891 + ], + [ + 0.04083, + 0.88114 + ], + [ + 0.0325, + 0.90234 + ], + [ + 0.02292, + 0.91462 + ], + [ + 0.0225, + 0.91462 + ], + [ + 0.01125, + 0.9029 + ], + [ + 0.00333, + 0.8817 + ], + [ + 0.0025, + 0.87946 + ] + ], + "hintCenter": [ + 0.022, + 0.88298 + ] + }, + { + "id": "kite", + "kind": "kite", + "label": "Kite", + "sprite": "baked/dense_2_kite.png", + "chip": "baked/chip_kite.png", + "pos": [ + 0.90271, + 0.45229 + ], + "size": [ + 0.04875, + 0.0798 + ], + "rotation": 0, + "polygon": [ + [ + 0.87833, + 0.49051 + ], + [ + 0.87917, + 0.48047 + ], + [ + 0.90208, + 0.41239 + ], + [ + 0.90292, + 0.41239 + ], + [ + 0.905, + 0.41295 + ], + [ + 0.90625, + 0.4135 + ], + [ + 0.91583, + 0.41853 + ], + [ + 0.92458, + 0.42355 + ], + [ + 0.92625, + 0.42467 + ], + [ + 0.92667, + 0.43025 + ], + [ + 0.92667, + 0.43527 + ], + [ + 0.92583, + 0.47321 + ], + [ + 0.92542, + 0.47768 + ], + [ + 0.92458, + 0.48158 + ], + [ + 0.9225, + 0.48717 + ], + [ + 0.92125, + 0.48884 + ], + [ + 0.91958, + 0.48996 + ], + [ + 0.91833, + 0.49051 + ], + [ + 0.87917, + 0.49163 + ], + [ + 0.87833, + 0.49107 + ] + ], + "hintCenter": [ + 0.91063, + 0.44867 + ] + }, + { + "id": "kite#2", + "kind": "kite", + "label": "Kite", + "sprite": "baked/dense_2_kite_2.png", + "chip": "baked/chip_kite.png", + "pos": [ + 0.33937, + 0.89146 + ], + "size": [ + 0.05458, + 0.12444 + ], + "rotation": 0, + "polygon": [ + [ + 0.31208, + 0.86217 + ], + [ + 0.3125, + 0.86049 + ], + [ + 0.31417, + 0.85435 + ], + [ + 0.31667, + 0.84542 + ], + [ + 0.31792, + 0.84096 + ], + [ + 0.32, + 0.83371 + ], + [ + 0.32083, + 0.83092 + ], + [ + 0.32125, + 0.8298 + ], + [ + 0.32167, + 0.82924 + ], + [ + 0.32208, + 0.82924 + ], + [ + 0.32333, + 0.8298 + ], + [ + 0.32625, + 0.83147 + ], + [ + 0.34167, + 0.84096 + ], + [ + 0.34583, + 0.84375 + ], + [ + 0.3625, + 0.91016 + ], + [ + 0.36625, + 0.93025 + ], + [ + 0.35583, + 0.95312 + ], + [ + 0.355, + 0.95312 + ], + [ + 0.35417, + 0.95201 + ], + [ + 0.31208, + 0.86328 + ] + ], + "hintCenter": [ + 0.33516, + 0.87026 + ] + }, + { + "id": "top_hat", + "kind": "top_hat", + "label": "Top Hat", + "sprite": "baked/dense_2_top_hat.png", + "chip": "baked/chip_top_hat.png", + "pos": [ + 0.37562, + 0.31864 + ], + "size": [ + 0.03292, + 0.03795 + ], + "rotation": 0, + "polygon": [ + [ + 0.35917, + 0.32868 + ], + [ + 0.36417, + 0.30301 + ], + [ + 0.36458, + 0.30246 + ], + [ + 0.36708, + 0.30078 + ], + [ + 0.37208, + 0.29967 + ], + [ + 0.37917, + 0.29967 + ], + [ + 0.38333, + 0.30078 + ], + [ + 0.38583, + 0.30246 + ], + [ + 0.38667, + 0.30413 + ], + [ + 0.39167, + 0.32868 + ], + [ + 0.39167, + 0.3298 + ], + [ + 0.39083, + 0.33203 + ], + [ + 0.38917, + 0.33371 + ], + [ + 0.38458, + 0.33594 + ], + [ + 0.38, + 0.33705 + ], + [ + 0.37, + 0.33705 + ], + [ + 0.36583, + 0.33594 + ], + [ + 0.36333, + 0.33482 + ], + [ + 0.36167, + 0.33371 + ], + [ + 0.35958, + 0.33147 + ] + ], + "hintCenter": [ + 0.37532, + 0.31958 + ] + }, + { + "id": "silver_whistle", + "kind": "silver_whistle", + "label": "Whistle", + "sprite": "baked/dense_2_silver_whistle.png", + "chip": "baked/chip_silver_whistle.png", + "pos": [ + 0.53438, + 0.19559 + ], + "size": [ + 0.04708, + 0.02511 + ], + "rotation": 0, + "polygon": [ + [ + 0.51083, + 0.19754 + ], + [ + 0.5125, + 0.19531 + ], + [ + 0.51875, + 0.18917 + ], + [ + 0.52542, + 0.18304 + ], + [ + 0.53083, + 0.18304 + ], + [ + 0.54417, + 0.1875 + ], + [ + 0.54917, + 0.18973 + ], + [ + 0.55125, + 0.19085 + ], + [ + 0.555, + 0.19364 + ], + [ + 0.55625, + 0.19531 + ], + [ + 0.5575, + 0.1981 + ], + [ + 0.5575, + 0.20201 + ], + [ + 0.55708, + 0.20312 + ], + [ + 0.55542, + 0.20536 + ], + [ + 0.55292, + 0.20703 + ], + [ + 0.53167, + 0.20759 + ], + [ + 0.51667, + 0.20759 + ], + [ + 0.51417, + 0.20592 + ], + [ + 0.51208, + 0.20424 + ], + [ + 0.51083, + 0.20257 + ] + ], + "hintCenter": [ + 0.53361, + 0.1963 + ] + }, + { + "id": "silver_whistle#2", + "kind": "silver_whistle", + "label": "Whistle", + "sprite": "baked/dense_2_silver_whistle_2.png", + "chip": "baked/chip_silver_whistle.png", + "pos": [ + 0.65104, + 0.56306 + ], + "size": [ + 0.04792, + 0.02679 + ], + "rotation": 0, + "polygon": [ + [ + 0.62708, + 0.56696 + ], + [ + 0.62917, + 0.56417 + ], + [ + 0.63792, + 0.55413 + ], + [ + 0.64083, + 0.55134 + ], + [ + 0.64333, + 0.55022 + ], + [ + 0.64917, + 0.54967 + ], + [ + 0.65417, + 0.54967 + ], + [ + 0.66083, + 0.55078 + ], + [ + 0.66292, + 0.55134 + ], + [ + 0.66667, + 0.55301 + ], + [ + 0.67125, + 0.55636 + ], + [ + 0.67417, + 0.56027 + ], + [ + 0.67458, + 0.56194 + ], + [ + 0.67417, + 0.56529 + ], + [ + 0.67292, + 0.56752 + ], + [ + 0.67, + 0.5692 + ], + [ + 0.635, + 0.57589 + ], + [ + 0.63333, + 0.57589 + ], + [ + 0.6275, + 0.57199 + ], + [ + 0.62708, + 0.57087 + ] + ], + "hintCenter": [ + 0.64981, + 0.56222 + ] + }, + { + "id": "silver_whistle#3", + "kind": "silver_whistle", + "label": "Whistle", + "sprite": "baked/dense_2_silver_whistle_3.png", + "chip": "baked/chip_silver_whistle.png", + "pos": [ + 0.71354, + 0.78544 + ], + "size": [ + 0.06042, + 0.03516 + ], + "rotation": 0, + "polygon": [ + [ + 0.68333, + 0.79074 + ], + [ + 0.68792, + 0.7846 + ], + [ + 0.6925, + 0.77902 + ], + [ + 0.69708, + 0.774 + ], + [ + 0.70083, + 0.77065 + ], + [ + 0.70958, + 0.76786 + ], + [ + 0.71583, + 0.76786 + ], + [ + 0.72042, + 0.76842 + ], + [ + 0.72708, + 0.77009 + ], + [ + 0.73417, + 0.77288 + ], + [ + 0.73792, + 0.77511 + ], + [ + 0.74208, + 0.78013 + ], + [ + 0.74333, + 0.78348 + ], + [ + 0.74333, + 0.78739 + ], + [ + 0.74083, + 0.79129 + ], + [ + 0.73792, + 0.79353 + ], + [ + 0.69292, + 0.80246 + ], + [ + 0.69125, + 0.80246 + ], + [ + 0.68625, + 0.79911 + ], + [ + 0.68333, + 0.7952 + ] + ], + "hintCenter": [ + 0.71249, + 0.78395 + ] + }, + { + "id": "silver_whistle#4", + "kind": "silver_whistle", + "label": "Whistle", + "sprite": "baked/dense_2_silver_whistle_4.png", + "chip": "baked/chip_silver_whistle.png", + "pos": [ + 0.49979, + 0.82729 + ], + "size": [ + 0.02958, + 0.02734 + ], + "rotation": 0, + "polygon": [ + [ + 0.485, + 0.82757 + ], + [ + 0.48708, + 0.81641 + ], + [ + 0.48792, + 0.81473 + ], + [ + 0.48917, + 0.81362 + ], + [ + 0.4925, + 0.81362 + ], + [ + 0.49833, + 0.81417 + ], + [ + 0.5, + 0.81473 + ], + [ + 0.50542, + 0.81975 + ], + [ + 0.51042, + 0.82645 + ], + [ + 0.5125, + 0.8298 + ], + [ + 0.51417, + 0.83426 + ], + [ + 0.51417, + 0.83482 + ], + [ + 0.51292, + 0.83761 + ], + [ + 0.51125, + 0.83984 + ], + [ + 0.51042, + 0.8404 + ], + [ + 0.50458, + 0.8404 + ], + [ + 0.49042, + 0.83705 + ], + [ + 0.4875, + 0.83538 + ], + [ + 0.48625, + 0.83315 + ], + [ + 0.485, + 0.82812 + ] + ], + "hintCenter": [ + 0.49851, + 0.82758 + ] + } + ] +} diff --git a/assets/levels/funfair/scene.dense.3.json b/assets/levels/funfair/scene.dense.3.json new file mode 100644 index 0000000..bd173ef --- /dev/null +++ b/assets/levels/funfair/scene.dense.3.json @@ -0,0 +1,1702 @@ +{ + "sceneId": "funfair", + "name": "Funfair", + "background": "background_dense.jpg", + "size": { + "w": 2400, + "h": 1792 + }, + "objectCount": 17, + "objects": [ + { + "id": "cotton_candy", + "kind": "cotton_candy", + "label": "Cotton Candy", + "sprite": "baked/dense_3_cotton_candy.png", + "chip": "baked/chip_cotton_candy.png", + "pos": [ + 0.32583, + 0.24554 + ], + "size": [ + 0.02833, + 0.05357 + ], + "rotation": 0, + "polygon": [ + [ + 0.31167, + 0.24163 + ], + [ + 0.3125, + 0.23103 + ], + [ + 0.31292, + 0.22991 + ], + [ + 0.3175, + 0.22154 + ], + [ + 0.31833, + 0.22042 + ], + [ + 0.32083, + 0.21875 + ], + [ + 0.32458, + 0.21875 + ], + [ + 0.32583, + 0.21931 + ], + [ + 0.3325, + 0.22433 + ], + [ + 0.33417, + 0.22656 + ], + [ + 0.33792, + 0.2327 + ], + [ + 0.33875, + 0.23605 + ], + [ + 0.33958, + 0.24665 + ], + [ + 0.33958, + 0.25167 + ], + [ + 0.33917, + 0.25391 + ], + [ + 0.33542, + 0.26674 + ], + [ + 0.33375, + 0.27176 + ], + [ + 0.31708, + 0.26004 + ], + [ + 0.31583, + 0.25837 + ], + [ + 0.31167, + 0.24721 + ] + ], + "hintCenter": [ + 0.32556, + 0.24262 + ] + }, + { + "id": "popcorn", + "kind": "popcorn", + "label": "Popcorn", + "sprite": "baked/dense_3_popcorn.png", + "chip": "baked/chip_popcorn.png", + "pos": [ + 0.56458, + 0.10212 + ], + "size": [ + 0.025, + 0.04464 + ], + "rotation": 0, + "polygon": [ + [ + 0.55292, + 0.08873 + ], + [ + 0.55792, + 0.08259 + ], + [ + 0.56292, + 0.08036 + ], + [ + 0.565, + 0.0798 + ], + [ + 0.56583, + 0.0798 + ], + [ + 0.57167, + 0.08315 + ], + [ + 0.57292, + 0.08482 + ], + [ + 0.57625, + 0.08984 + ], + [ + 0.57667, + 0.09208 + ], + [ + 0.57625, + 0.09766 + ], + [ + 0.57375, + 0.12054 + ], + [ + 0.57333, + 0.12221 + ], + [ + 0.57292, + 0.12277 + ], + [ + 0.57125, + 0.12333 + ], + [ + 0.55958, + 0.12388 + ], + [ + 0.55667, + 0.12388 + ], + [ + 0.55542, + 0.12165 + ], + [ + 0.55458, + 0.11663 + ], + [ + 0.55333, + 0.1077 + ], + [ + 0.55208, + 0.09096 + ] + ], + "hintCenter": [ + 0.56432, + 0.10122 + ] + }, + { + "id": "popcorn#2", + "kind": "popcorn", + "label": "Popcorn", + "sprite": "baked/dense_3_popcorn_2.png", + "chip": "baked/chip_popcorn.png", + "pos": [ + 0.50542, + 0.48047 + ], + "size": [ + 0.02583, + 0.05022 + ], + "rotation": 0, + "polygon": [ + [ + 0.4925, + 0.46819 + ], + [ + 0.49458, + 0.46261 + ], + [ + 0.49875, + 0.45759 + ], + [ + 0.50125, + 0.45536 + ], + [ + 0.50958, + 0.45536 + ], + [ + 0.51083, + 0.45592 + ], + [ + 0.515, + 0.46261 + ], + [ + 0.51583, + 0.46484 + ], + [ + 0.5175, + 0.47098 + ], + [ + 0.51792, + 0.47489 + ], + [ + 0.51625, + 0.48828 + ], + [ + 0.51542, + 0.49386 + ], + [ + 0.51458, + 0.49665 + ], + [ + 0.51167, + 0.50391 + ], + [ + 0.51042, + 0.50502 + ], + [ + 0.50167, + 0.50446 + ], + [ + 0.49958, + 0.50391 + ], + [ + 0.49583, + 0.49498 + ], + [ + 0.495, + 0.49107 + ], + [ + 0.4925, + 0.4721 + ] + ], + "hintCenter": [ + 0.50526, + 0.47801 + ] + }, + { + "id": "ice_cream", + "kind": "ice_cream", + "label": "Ice Cream", + "sprite": "baked/dense_3_ice_cream.png", + "chip": "baked/chip_ice_cream.png", + "pos": [ + 0.46542, + 0.14369 + ], + "size": [ + 0.0225, + 0.05413 + ], + "rotation": 0, + "polygon": [ + [ + 0.45417, + 0.1356 + ], + [ + 0.455, + 0.12556 + ], + [ + 0.45583, + 0.12277 + ], + [ + 0.45667, + 0.12109 + ], + [ + 0.45917, + 0.1183 + ], + [ + 0.46667, + 0.11663 + ], + [ + 0.46833, + 0.11663 + ], + [ + 0.46958, + 0.11719 + ], + [ + 0.47167, + 0.11886 + ], + [ + 0.47333, + 0.12054 + ], + [ + 0.47417, + 0.12221 + ], + [ + 0.47542, + 0.12612 + ], + [ + 0.47625, + 0.13337 + ], + [ + 0.47625, + 0.13449 + ], + [ + 0.4675, + 0.16853 + ], + [ + 0.46625, + 0.1702 + ], + [ + 0.46375, + 0.1702 + ], + [ + 0.46292, + 0.16908 + ], + [ + 0.46208, + 0.16685 + ], + [ + 0.45417, + 0.13783 + ] + ], + "hintCenter": [ + 0.46476, + 0.13597 + ] + }, + { + "id": "goldfish_bag", + "kind": "goldfish_bag", + "label": "Goldfish", + "sprite": "baked/dense_3_goldfish_bag.png", + "chip": "baked/chip_goldfish_bag.png", + "pos": [ + 0.58833, + 0.3856 + ], + "size": [ + 0.03667, + 0.06138 + ], + "rotation": 0, + "polygon": [ + [ + 0.57, + 0.41071 + ], + [ + 0.5725, + 0.39286 + ], + [ + 0.58042, + 0.35882 + ], + [ + 0.58083, + 0.3577 + ], + [ + 0.58208, + 0.35658 + ], + [ + 0.58792, + 0.35491 + ], + [ + 0.58958, + 0.35491 + ], + [ + 0.59625, + 0.35658 + ], + [ + 0.59708, + 0.35714 + ], + [ + 0.59792, + 0.35826 + ], + [ + 0.60625, + 0.39007 + ], + [ + 0.60583, + 0.39621 + ], + [ + 0.60542, + 0.39955 + ], + [ + 0.60333, + 0.4135 + ], + [ + 0.6025, + 0.41462 + ], + [ + 0.59292, + 0.41574 + ], + [ + 0.5875, + 0.41574 + ], + [ + 0.57167, + 0.4135 + ], + [ + 0.57083, + 0.41295 + ], + [ + 0.57, + 0.41127 + ] + ], + "hintCenter": [ + 0.58894, + 0.39043 + ] + }, + { + "id": "rubber_duck#2", + "kind": "rubber_duck", + "label": "Rubber Duck", + "sprite": "baked/dense_3_rubber_duck_2.png", + "chip": "baked/chip_rubber_duck.png", + "pos": [ + 0.20646, + 0.69615 + ], + "size": [ + 0.04625, + 0.05413 + ], + "rotation": 0, + "polygon": [ + [ + 0.18333, + 0.6981 + ], + [ + 0.18417, + 0.69196 + ], + [ + 0.18625, + 0.68694 + ], + [ + 0.2075, + 0.67076 + ], + [ + 0.21333, + 0.66908 + ], + [ + 0.215, + 0.66908 + ], + [ + 0.21792, + 0.67076 + ], + [ + 0.22917, + 0.68304 + ], + [ + 0.22917, + 0.68527 + ], + [ + 0.2225, + 0.71205 + ], + [ + 0.22167, + 0.71429 + ], + [ + 0.21875, + 0.71819 + ], + [ + 0.21333, + 0.72154 + ], + [ + 0.20792, + 0.72266 + ], + [ + 0.20167, + 0.72266 + ], + [ + 0.19625, + 0.72154 + ], + [ + 0.19208, + 0.71931 + ], + [ + 0.18958, + 0.71708 + ], + [ + 0.18625, + 0.71261 + ], + [ + 0.18375, + 0.70536 + ] + ], + "hintCenter": [ + 0.20775, + 0.69281 + ] + }, + { + "id": "blue_balloon", + "kind": "blue_balloon", + "label": "Balloon", + "sprite": "baked/dense_3_blue_balloon.png", + "chip": "baked/chip_blue_balloon.png", + "pos": [ + 0.65354, + 0.48186 + ], + "size": [ + 0.02792, + 0.08092 + ], + "rotation": 0, + "polygon": [ + [ + 0.63958, + 0.45982 + ], + [ + 0.64125, + 0.45312 + ], + [ + 0.64208, + 0.45089 + ], + [ + 0.64417, + 0.44754 + ], + [ + 0.64708, + 0.4442 + ], + [ + 0.64958, + 0.44252 + ], + [ + 0.655, + 0.44141 + ], + [ + 0.65708, + 0.44196 + ], + [ + 0.66, + 0.44364 + ], + [ + 0.66125, + 0.44475 + ], + [ + 0.66375, + 0.4481 + ], + [ + 0.66625, + 0.45312 + ], + [ + 0.66708, + 0.45871 + ], + [ + 0.66708, + 0.46652 + ], + [ + 0.66583, + 0.47266 + ], + [ + 0.6525, + 0.51953 + ], + [ + 0.65167, + 0.52176 + ], + [ + 0.65083, + 0.52176 + ], + [ + 0.64042, + 0.47098 + ], + [ + 0.63958, + 0.46596 + ] + ], + "hintCenter": [ + 0.65365, + 0.46631 + ] + }, + { + "id": "blue_balloon#2", + "kind": "blue_balloon", + "label": "Balloon", + "sprite": "baked/dense_3_blue_balloon_2.png", + "chip": "baked/chip_blue_balloon.png", + "pos": [ + 0.80167, + 0.4947 + ], + "size": [ + 0.0275, + 0.09766 + ], + "rotation": 0, + "polygon": [ + [ + 0.78792, + 0.4615 + ], + [ + 0.78833, + 0.45926 + ], + [ + 0.79, + 0.45368 + ], + [ + 0.79167, + 0.45089 + ], + [ + 0.79292, + 0.44922 + ], + [ + 0.79667, + 0.44699 + ], + [ + 0.79958, + 0.44587 + ], + [ + 0.80417, + 0.44587 + ], + [ + 0.80875, + 0.44866 + ], + [ + 0.81083, + 0.45089 + ], + [ + 0.81208, + 0.45257 + ], + [ + 0.81375, + 0.45759 + ], + [ + 0.815, + 0.46205 + ], + [ + 0.81458, + 0.47154 + ], + [ + 0.81417, + 0.47545 + ], + [ + 0.80458, + 0.54297 + ], + [ + 0.80375, + 0.54241 + ], + [ + 0.78875, + 0.476 + ], + [ + 0.78833, + 0.47377 + ], + [ + 0.78792, + 0.47098 + ] + ], + "hintCenter": [ + 0.8013, + 0.47136 + ] + }, + { + "id": "grape_lollipop#2", + "kind": "grape_lollipop", + "label": "Lollipop", + "sprite": "baked/dense_3_grape_lollipop_2.png", + "chip": "baked/chip_grape_lollipop.png", + "pos": [ + 0.69354, + 0.64342 + ], + "size": [ + 0.02375, + 0.05915 + ], + "rotation": 0, + "polygon": [ + [ + 0.68167, + 0.63281 + ], + [ + 0.68333, + 0.62054 + ], + [ + 0.68833, + 0.61607 + ], + [ + 0.69042, + 0.6144 + ], + [ + 0.69208, + 0.61384 + ], + [ + 0.69333, + 0.61384 + ], + [ + 0.69625, + 0.6144 + ], + [ + 0.70042, + 0.61663 + ], + [ + 0.7025, + 0.61942 + ], + [ + 0.70333, + 0.62109 + ], + [ + 0.70417, + 0.62333 + ], + [ + 0.70458, + 0.62612 + ], + [ + 0.705, + 0.63002 + ], + [ + 0.70458, + 0.63449 + ], + [ + 0.70417, + 0.63616 + ], + [ + 0.70292, + 0.63951 + ], + [ + 0.68667, + 0.67132 + ], + [ + 0.68583, + 0.67243 + ], + [ + 0.685, + 0.67243 + ], + [ + 0.68167, + 0.6356 + ] + ], + "hintCenter": [ + 0.6936, + 0.63257 + ] + }, + { + "id": "pinwheel", + "kind": "pinwheel", + "label": "Pinwheel", + "sprite": "baked/dense_3_pinwheel.png", + "chip": "baked/chip_pinwheel.png", + "pos": [ + 0.72146, + 0.23772 + ], + "size": [ + 0.03208, + 0.05246 + ], + "rotation": 0, + "polygon": [ + [ + 0.70542, + 0.2394 + ], + [ + 0.71042, + 0.21987 + ], + [ + 0.71208, + 0.2154 + ], + [ + 0.71292, + 0.21373 + ], + [ + 0.71417, + 0.21205 + ], + [ + 0.71458, + 0.2115 + ], + [ + 0.73083, + 0.21875 + ], + [ + 0.73292, + 0.21987 + ], + [ + 0.73375, + 0.22042 + ], + [ + 0.73583, + 0.2221 + ], + [ + 0.73708, + 0.22377 + ], + [ + 0.73083, + 0.24833 + ], + [ + 0.73, + 0.25112 + ], + [ + 0.72917, + 0.25279 + ], + [ + 0.72833, + 0.25391 + ], + [ + 0.71292, + 0.26339 + ], + [ + 0.71167, + 0.26283 + ], + [ + 0.71083, + 0.26228 + ], + [ + 0.71042, + 0.26172 + ], + [ + 0.70542, + 0.24163 + ] + ], + "hintCenter": [ + 0.72043, + 0.23427 + ] + }, + { + "id": "pinwheel#2", + "kind": "pinwheel", + "label": "Pinwheel", + "sprite": "baked/dense_3_pinwheel_2.png", + "chip": "baked/chip_pinwheel.png", + "pos": [ + 0.69937, + 0.35463 + ], + "size": [ + 0.02958, + 0.04967 + ], + "rotation": 0, + "polygon": [ + [ + 0.68458, + 0.33817 + ], + [ + 0.685, + 0.33538 + ], + [ + 0.68542, + 0.33482 + ], + [ + 0.70292, + 0.3298 + ], + [ + 0.70875, + 0.3298 + ], + [ + 0.71292, + 0.35156 + ], + [ + 0.71333, + 0.35435 + ], + [ + 0.71375, + 0.35714 + ], + [ + 0.71375, + 0.35993 + ], + [ + 0.71208, + 0.37835 + ], + [ + 0.71167, + 0.37891 + ], + [ + 0.71042, + 0.37891 + ], + [ + 0.70792, + 0.37779 + ], + [ + 0.69, + 0.3683 + ], + [ + 0.68917, + 0.36775 + ], + [ + 0.68875, + 0.36719 + ], + [ + 0.685, + 0.34542 + ], + [ + 0.68458, + 0.3404 + ] + ], + "hintCenter": [ + 0.69949, + 0.35045 + ] + }, + { + "id": "kite", + "kind": "kite", + "label": "Kite", + "sprite": "baked/dense_3_kite.png", + "chip": "baked/chip_kite.png", + "pos": [ + 0.52375, + 0.19001 + ], + "size": [ + 0.05333, + 0.05301 + ], + "rotation": 0, + "polygon": [ + [ + 0.49708, + 0.16741 + ], + [ + 0.49917, + 0.16685 + ], + [ + 0.5025, + 0.16629 + ], + [ + 0.51958, + 0.1635 + ], + [ + 0.52083, + 0.1635 + ], + [ + 0.52125, + 0.16406 + ], + [ + 0.55, + 0.21038 + ], + [ + 0.55, + 0.21094 + ], + [ + 0.5475, + 0.21484 + ], + [ + 0.545, + 0.21596 + ], + [ + 0.50292, + 0.2048 + ], + [ + 0.50167, + 0.19866 + ], + [ + 0.50125, + 0.19643 + ], + [ + 0.49833, + 0.17857 + ], + [ + 0.49708, + 0.16797 + ] + ], + "hintCenter": [ + 0.51643, + 0.18584 + ] + }, + { + "id": "kite#2", + "kind": "kite", + "label": "Kite", + "sprite": "baked/dense_3_kite_2.png", + "chip": "baked/chip_kite.png", + "pos": [ + 0.45833, + 0.40234 + ], + "size": [ + 0.05167, + 0.10045 + ], + "rotation": 0, + "polygon": [ + [ + 0.4325, + 0.37054 + ], + [ + 0.43292, + 0.36384 + ], + [ + 0.43333, + 0.35714 + ], + [ + 0.43375, + 0.35268 + ], + [ + 0.43417, + 0.35212 + ], + [ + 0.45625, + 0.35379 + ], + [ + 0.47708, + 0.40569 + ], + [ + 0.47792, + 0.40792 + ], + [ + 0.47833, + 0.41016 + ], + [ + 0.48375, + 0.44085 + ], + [ + 0.48375, + 0.44196 + ], + [ + 0.48208, + 0.44978 + ], + [ + 0.47667, + 0.45201 + ], + [ + 0.47583, + 0.45201 + ], + [ + 0.43333, + 0.40123 + ], + [ + 0.4325, + 0.37723 + ] + ], + "hintCenter": [ + 0.4528, + 0.38686 + ] + }, + { + "id": "kite#3", + "kind": "kite", + "label": "Kite", + "sprite": "baked/dense_3_kite_3.png", + "chip": "baked/chip_kite.png", + "pos": [ + 0.88896, + 0.45145 + ], + "size": [ + 0.06458, + 0.07924 + ], + "rotation": 0, + "polygon": [ + [ + 0.85667, + 0.48493 + ], + [ + 0.85792, + 0.47824 + ], + [ + 0.85875, + 0.47656 + ], + [ + 0.89292, + 0.41853 + ], + [ + 0.89333, + 0.41797 + ], + [ + 0.89625, + 0.41685 + ], + [ + 0.91167, + 0.41239 + ], + [ + 0.91458, + 0.41183 + ], + [ + 0.91625, + 0.41183 + ], + [ + 0.91708, + 0.41406 + ], + [ + 0.92083, + 0.43917 + ], + [ + 0.92083, + 0.44196 + ], + [ + 0.92042, + 0.44308 + ], + [ + 0.91125, + 0.46652 + ], + [ + 0.88583, + 0.48438 + ], + [ + 0.885, + 0.48493 + ], + [ + 0.87542, + 0.4894 + ], + [ + 0.86083, + 0.49051 + ], + [ + 0.86, + 0.49051 + ], + [ + 0.85667, + 0.48549 + ] + ], + "hintCenter": [ + 0.89818, + 0.44504 + ] + }, + { + "id": "top_hat", + "kind": "top_hat", + "label": "Top Hat", + "sprite": "baked/dense_3_top_hat.png", + "chip": "baked/chip_top_hat.png", + "pos": [ + 0.04938, + 0.90123 + ], + "size": [ + 0.04042, + 0.05022 + ], + "rotation": 0, + "polygon": [ + [ + 0.02917, + 0.90513 + ], + [ + 0.0425, + 0.87946 + ], + [ + 0.04458, + 0.87667 + ], + [ + 0.04667, + 0.87612 + ], + [ + 0.04917, + 0.87612 + ], + [ + 0.05208, + 0.87667 + ], + [ + 0.05583, + 0.87779 + ], + [ + 0.05958, + 0.87946 + ], + [ + 0.06167, + 0.88058 + ], + [ + 0.06625, + 0.88393 + ], + [ + 0.06833, + 0.88616 + ], + [ + 0.06917, + 0.88895 + ], + [ + 0.06917, + 0.89007 + ], + [ + 0.06833, + 0.92188 + ], + [ + 0.06667, + 0.92355 + ], + [ + 0.06542, + 0.92411 + ], + [ + 0.05292, + 0.92578 + ], + [ + 0.05125, + 0.92578 + ], + [ + 0.03, + 0.9096 + ], + [ + 0.02917, + 0.90848 + ] + ], + "hintCenter": [ + 0.05205, + 0.89934 + ] + }, + { + "id": "silver_whistle", + "kind": "silver_whistle", + "label": "Whistle", + "sprite": "baked/dense_3_silver_whistle.png", + "chip": "baked/chip_silver_whistle.png", + "pos": [ + 0.38292, + 0.31585 + ], + "size": [ + 0.0525, + 0.03571 + ], + "rotation": 0, + "polygon": [ + [ + 0.35667, + 0.32254 + ], + [ + 0.35792, + 0.32031 + ], + [ + 0.37375, + 0.30134 + ], + [ + 0.37625, + 0.30022 + ], + [ + 0.38792, + 0.29799 + ], + [ + 0.38958, + 0.29799 + ], + [ + 0.39917, + 0.3019 + ], + [ + 0.40333, + 0.30469 + ], + [ + 0.40625, + 0.30748 + ], + [ + 0.40792, + 0.31027 + ], + [ + 0.40875, + 0.3125 + ], + [ + 0.40875, + 0.31641 + ], + [ + 0.40792, + 0.31975 + ], + [ + 0.40708, + 0.32087 + ], + [ + 0.40458, + 0.3231 + ], + [ + 0.38542, + 0.32924 + ], + [ + 0.36625, + 0.33315 + ], + [ + 0.36333, + 0.33203 + ], + [ + 0.3575, + 0.32868 + ], + [ + 0.35667, + 0.32422 + ] + ], + "hintCenter": [ + 0.38302, + 0.31521 + ] + }, + { + "id": "silver_whistle#2", + "kind": "silver_whistle", + "label": "Whistle", + "sprite": "baked/dense_3_silver_whistle_2.png", + "chip": "baked/chip_silver_whistle.png", + "pos": [ + 0.35104, + 0.91462 + ], + "size": [ + 0.04042, + 0.03683 + ], + "rotation": 0, + "polygon": [ + [ + 0.33083, + 0.90179 + ], + [ + 0.33208, + 0.90011 + ], + [ + 0.33625, + 0.89621 + ], + [ + 0.34083, + 0.89621 + ], + [ + 0.35, + 0.89788 + ], + [ + 0.35833, + 0.89955 + ], + [ + 0.36125, + 0.90067 + ], + [ + 0.365, + 0.90346 + ], + [ + 0.36708, + 0.90625 + ], + [ + 0.37083, + 0.91574 + ], + [ + 0.37042, + 0.91853 + ], + [ + 0.3675, + 0.92355 + ], + [ + 0.36583, + 0.92578 + ], + [ + 0.36125, + 0.93025 + ], + [ + 0.35792, + 0.93192 + ], + [ + 0.35583, + 0.93248 + ], + [ + 0.35417, + 0.93248 + ], + [ + 0.35208, + 0.93192 + ], + [ + 0.34833, + 0.92969 + ], + [ + 0.33083, + 0.9096 + ] + ], + "hintCenter": [ + 0.35143, + 0.91125 + ] + } + ] +} diff --git a/assets/levels/funfair/scene.dense.4.json b/assets/levels/funfair/scene.dense.4.json new file mode 100644 index 0000000..d810150 --- /dev/null +++ b/assets/levels/funfair/scene.dense.4.json @@ -0,0 +1,2220 @@ +{ + "sceneId": "funfair", + "name": "Funfair", + "background": "background_dense.jpg", + "size": { + "w": 2400, + "h": 1792 + }, + "objectCount": 22, + "objects": [ + { + "id": "teddy_bear", + "kind": "teddy_bear", + "label": "Teddy Bear", + "sprite": "baked/dense_4_teddy_bear.png", + "chip": "baked/chip_teddy_bear.png", + "pos": [ + 0.565, + 0.1317 + ], + "size": [ + 0.0325, + 0.0558 + ], + "rotation": 0, + "polygon": [ + [ + 0.54875, + 0.14007 + ], + [ + 0.54917, + 0.10826 + ], + [ + 0.54958, + 0.10714 + ], + [ + 0.55, + 0.10658 + ], + [ + 0.55292, + 0.10547 + ], + [ + 0.56875, + 0.10379 + ], + [ + 0.57083, + 0.10379 + ], + [ + 0.57167, + 0.10435 + ], + [ + 0.5725, + 0.10547 + ], + [ + 0.57333, + 0.1077 + ], + [ + 0.58083, + 0.14565 + ], + [ + 0.58083, + 0.14955 + ], + [ + 0.58042, + 0.15123 + ], + [ + 0.57958, + 0.15346 + ], + [ + 0.56417, + 0.15904 + ], + [ + 0.56125, + 0.15904 + ], + [ + 0.55917, + 0.15792 + ], + [ + 0.555, + 0.15402 + ], + [ + 0.55042, + 0.14955 + ], + [ + 0.54875, + 0.14732 + ] + ], + "hintCenter": [ + 0.56229, + 0.13125 + ] + }, + { + "id": "teddy_bear#2", + "kind": "teddy_bear", + "label": "Teddy Bear", + "sprite": "baked/dense_4_teddy_bear_2.png", + "chip": "baked/chip_teddy_bear.png", + "pos": [ + 0.64271, + 0.48661 + ], + "size": [ + 0.03458, + 0.0625 + ], + "rotation": 0, + "polygon": [ + [ + 0.62542, + 0.50502 + ], + [ + 0.63167, + 0.46094 + ], + [ + 0.63208, + 0.45926 + ], + [ + 0.63292, + 0.45759 + ], + [ + 0.63375, + 0.45647 + ], + [ + 0.635, + 0.45536 + ], + [ + 0.65583, + 0.45647 + ], + [ + 0.65667, + 0.45703 + ], + [ + 0.65792, + 0.45871 + ], + [ + 0.65875, + 0.46094 + ], + [ + 0.65958, + 0.50893 + ], + [ + 0.65917, + 0.51004 + ], + [ + 0.65708, + 0.51395 + ], + [ + 0.65542, + 0.51562 + ], + [ + 0.65375, + 0.51674 + ], + [ + 0.65208, + 0.5173 + ], + [ + 0.65125, + 0.5173 + ], + [ + 0.63042, + 0.51395 + ], + [ + 0.62708, + 0.51116 + ], + [ + 0.62667, + 0.51004 + ] + ], + "hintCenter": [ + 0.64403, + 0.48551 + ] + }, + { + "id": "cotton_candy", + "kind": "cotton_candy", + "label": "Cotton Candy", + "sprite": "baked/dense_4_cotton_candy.png", + "chip": "baked/chip_cotton_candy.png", + "pos": [ + 0.36188, + 0.24749 + ], + "size": [ + 0.02375, + 0.0452 + ], + "rotation": 0, + "polygon": [ + [ + 0.35, + 0.24163 + ], + [ + 0.35292, + 0.23214 + ], + [ + 0.36042, + 0.22489 + ], + [ + 0.36292, + 0.22489 + ], + [ + 0.36375, + 0.22545 + ], + [ + 0.36917, + 0.23214 + ], + [ + 0.37083, + 0.23438 + ], + [ + 0.37292, + 0.24163 + ], + [ + 0.37333, + 0.24442 + ], + [ + 0.37083, + 0.25502 + ], + [ + 0.37042, + 0.2567 + ], + [ + 0.36292, + 0.26897 + ], + [ + 0.36208, + 0.26953 + ], + [ + 0.35375, + 0.25781 + ], + [ + 0.35042, + 0.25112 + ], + [ + 0.35, + 0.24219 + ] + ], + "hintCenter": [ + 0.36164, + 0.24475 + ] + }, + { + "id": "popcorn", + "kind": "popcorn", + "label": "Popcorn", + "sprite": "baked/dense_4_popcorn.png", + "chip": "baked/chip_popcorn.png", + "pos": [ + 0.50667, + 0.48186 + ], + "size": [ + 0.03083, + 0.0519 + ], + "rotation": 0, + "polygon": [ + [ + 0.49208, + 0.46987 + ], + [ + 0.49667, + 0.46205 + ], + [ + 0.5, + 0.45815 + ], + [ + 0.50417, + 0.45647 + ], + [ + 0.50958, + 0.45592 + ], + [ + 0.51667, + 0.46038 + ], + [ + 0.51958, + 0.46373 + ], + [ + 0.52125, + 0.46708 + ], + [ + 0.52167, + 0.47154 + ], + [ + 0.52167, + 0.47489 + ], + [ + 0.52083, + 0.48326 + ], + [ + 0.52, + 0.48996 + ], + [ + 0.5175, + 0.49944 + ], + [ + 0.51583, + 0.50391 + ], + [ + 0.51208, + 0.50614 + ], + [ + 0.50833, + 0.50725 + ], + [ + 0.50042, + 0.50725 + ], + [ + 0.49583, + 0.50614 + ], + [ + 0.49458, + 0.50167 + ], + [ + 0.49125, + 0.47266 + ] + ], + "hintCenter": [ + 0.50689, + 0.47892 + ] + }, + { + "id": "ice_cream", + "kind": "ice_cream", + "label": "Ice Cream", + "sprite": "baked/dense_4_ice_cream.png", + "chip": "baked/chip_ice_cream.png", + "pos": [ + 0.5325, + 0.1861 + ], + "size": [ + 0.05833, + 0.04408 + ], + "rotation": 0, + "polygon": [ + [ + 0.50333, + 0.18304 + ], + [ + 0.50375, + 0.17857 + ], + [ + 0.50542, + 0.17243 + ], + [ + 0.50667, + 0.1702 + ], + [ + 0.51083, + 0.16629 + ], + [ + 0.51542, + 0.16406 + ], + [ + 0.52042, + 0.16406 + ], + [ + 0.53208, + 0.16797 + ], + [ + 0.53292, + 0.16853 + ], + [ + 0.56042, + 0.20201 + ], + [ + 0.56125, + 0.20312 + ], + [ + 0.56125, + 0.20647 + ], + [ + 0.55958, + 0.20703 + ], + [ + 0.5225, + 0.20759 + ], + [ + 0.52, + 0.20759 + ], + [ + 0.51917, + 0.20703 + ], + [ + 0.50917, + 0.1981 + ], + [ + 0.50583, + 0.19364 + ], + [ + 0.505, + 0.19196 + ], + [ + 0.50333, + 0.18694 + ] + ], + "hintCenter": [ + 0.52741, + 0.18824 + ] + }, + { + "id": "ice_cream#2", + "kind": "ice_cream", + "label": "Ice Cream", + "sprite": "baked/dense_4_ice_cream_2.png", + "chip": "baked/chip_ice_cream.png", + "pos": [ + 0.64875, + 0.55022 + ], + "size": [ + 0.05167, + 0.04241 + ], + "rotation": 0, + "polygon": [ + [ + 0.62333, + 0.54074 + ], + [ + 0.625, + 0.53683 + ], + [ + 0.62667, + 0.53404 + ], + [ + 0.62833, + 0.53237 + ], + [ + 0.63208, + 0.53013 + ], + [ + 0.63542, + 0.52902 + ], + [ + 0.63792, + 0.52902 + ], + [ + 0.64, + 0.52958 + ], + [ + 0.64917, + 0.53348 + ], + [ + 0.65042, + 0.5346 + ], + [ + 0.67417, + 0.56696 + ], + [ + 0.67417, + 0.5692 + ], + [ + 0.6725, + 0.57087 + ], + [ + 0.63917, + 0.57087 + ], + [ + 0.63833, + 0.57031 + ], + [ + 0.62792, + 0.56138 + ], + [ + 0.62542, + 0.55804 + ], + [ + 0.62458, + 0.55636 + ], + [ + 0.62333, + 0.55078 + ], + [ + 0.62292, + 0.54353 + ] + ], + "hintCenter": [ + 0.6444, + 0.55221 + ] + }, + { + "id": "goldfish_bag", + "kind": "goldfish_bag", + "label": "Goldfish", + "sprite": "baked/dense_4_goldfish_bag.png", + "chip": "baked/chip_goldfish_bag.png", + "pos": [ + 0.0425, + 0.89621 + ], + "size": [ + 0.04, + 0.06808 + ], + "rotation": 0, + "polygon": [ + [ + 0.0225, + 0.91239 + ], + [ + 0.02375, + 0.90513 + ], + [ + 0.02542, + 0.89788 + ], + [ + 0.035, + 0.86496 + ], + [ + 0.03583, + 0.86384 + ], + [ + 0.04125, + 0.86217 + ], + [ + 0.045, + 0.86217 + ], + [ + 0.05, + 0.86384 + ], + [ + 0.05083, + 0.86496 + ], + [ + 0.06208, + 0.91071 + ], + [ + 0.06208, + 0.91853 + ], + [ + 0.06083, + 0.92188 + ], + [ + 0.06, + 0.92355 + ], + [ + 0.05833, + 0.92578 + ], + [ + 0.04958, + 0.92857 + ], + [ + 0.04125, + 0.92969 + ], + [ + 0.04, + 0.92969 + ], + [ + 0.03083, + 0.92634 + ], + [ + 0.02708, + 0.92243 + ], + [ + 0.02542, + 0.9202 + ] + ], + "hintCenter": [ + 0.04314, + 0.9035 + ] + }, + { + "id": "blue_balloon", + "kind": "blue_balloon", + "label": "Balloon", + "sprite": "baked/dense_4_blue_balloon.png", + "chip": "baked/chip_blue_balloon.png", + "pos": [ + 0.97875, + 0.27846 + ], + "size": [ + 0.02833, + 0.06808 + ], + "rotation": 0, + "polygon": [ + [ + 0.96458, + 0.26228 + ], + [ + 0.965, + 0.25949 + ], + [ + 0.96708, + 0.25223 + ], + [ + 0.96833, + 0.25 + ], + [ + 0.97167, + 0.24665 + ], + [ + 0.97333, + 0.24554 + ], + [ + 0.97667, + 0.24442 + ], + [ + 0.97958, + 0.24442 + ], + [ + 0.98292, + 0.24554 + ], + [ + 0.98583, + 0.24777 + ], + [ + 0.98833, + 0.25112 + ], + [ + 0.99083, + 0.25725 + ], + [ + 0.9925, + 0.26562 + ], + [ + 0.9925, + 0.26786 + ], + [ + 0.99083, + 0.27567 + ], + [ + 0.98833, + 0.28237 + ], + [ + 0.97708, + 0.31194 + ], + [ + 0.97667, + 0.31194 + ], + [ + 0.96583, + 0.27679 + ], + [ + 0.96458, + 0.27009 + ] + ], + "hintCenter": [ + 0.97821, + 0.26849 + ] + }, + { + "id": "blue_balloon#2", + "kind": "blue_balloon", + "label": "Balloon", + "sprite": "baked/dense_4_blue_balloon_2.png", + "chip": "baked/chip_blue_balloon.png", + "pos": [ + 0.77271, + 0.28711 + ], + "size": [ + 0.02792, + 0.09319 + ], + "rotation": 0, + "polygon": [ + [ + 0.75875, + 0.25781 + ], + [ + 0.75958, + 0.25335 + ], + [ + 0.76125, + 0.24888 + ], + [ + 0.76208, + 0.24721 + ], + [ + 0.765, + 0.2433 + ], + [ + 0.76833, + 0.24107 + ], + [ + 0.76958, + 0.24051 + ], + [ + 0.775, + 0.24051 + ], + [ + 0.77667, + 0.24107 + ], + [ + 0.78042, + 0.24386 + ], + [ + 0.78292, + 0.24721 + ], + [ + 0.785, + 0.25223 + ], + [ + 0.78583, + 0.25614 + ], + [ + 0.78625, + 0.25949 + ], + [ + 0.78625, + 0.26283 + ], + [ + 0.78583, + 0.26674 + ], + [ + 0.77458, + 0.33259 + ], + [ + 0.77375, + 0.33203 + ], + [ + 0.75917, + 0.26786 + ], + [ + 0.75875, + 0.26507 + ] + ], + "hintCenter": [ + 0.77247, + 0.26573 + ] + }, + { + "id": "grape_lollipop", + "kind": "grape_lollipop", + "label": "Lollipop", + "sprite": "baked/dense_4_grape_lollipop.png", + "chip": "baked/chip_grape_lollipop.png", + "pos": [ + 0.36333, + 0.08538 + ], + "size": [ + 0.02333, + 0.04129 + ], + "rotation": 0, + "polygon": [ + [ + 0.35167, + 0.07924 + ], + [ + 0.35292, + 0.07422 + ], + [ + 0.35708, + 0.06696 + ], + [ + 0.36042, + 0.06473 + ], + [ + 0.36375, + 0.06473 + ], + [ + 0.365, + 0.06529 + ], + [ + 0.37083, + 0.06864 + ], + [ + 0.37333, + 0.07143 + ], + [ + 0.37375, + 0.07199 + ], + [ + 0.37417, + 0.0731 + ], + [ + 0.37458, + 0.07589 + ], + [ + 0.37458, + 0.08371 + ], + [ + 0.36833, + 0.10491 + ], + [ + 0.36792, + 0.10547 + ], + [ + 0.36583, + 0.10547 + ], + [ + 0.35458, + 0.09487 + ], + [ + 0.35333, + 0.09319 + ], + [ + 0.35292, + 0.09096 + ], + [ + 0.3525, + 0.08817 + ], + [ + 0.35167, + 0.08259 + ] + ], + "hintCenter": [ + 0.36309, + 0.08135 + ] + }, + { + "id": "grape_lollipop#2", + "kind": "grape_lollipop", + "label": "Lollipop", + "sprite": "baked/dense_4_grape_lollipop_2.png", + "chip": "baked/chip_grape_lollipop.png", + "pos": [ + 0.32229, + 0.25223 + ], + "size": [ + 0.02208, + 0.03125 + ], + "rotation": 0, + "polygon": [ + [ + 0.31125, + 0.24777 + ], + [ + 0.31167, + 0.24609 + ], + [ + 0.31333, + 0.24219 + ], + [ + 0.31542, + 0.2394 + ], + [ + 0.31833, + 0.23717 + ], + [ + 0.32, + 0.23661 + ], + [ + 0.32458, + 0.23661 + ], + [ + 0.32833, + 0.23884 + ], + [ + 0.33125, + 0.24275 + ], + [ + 0.3325, + 0.24609 + ], + [ + 0.33292, + 0.24777 + ], + [ + 0.33292, + 0.25391 + ], + [ + 0.3325, + 0.25614 + ], + [ + 0.33125, + 0.25949 + ], + [ + 0.32792, + 0.26395 + ], + [ + 0.32, + 0.2673 + ], + [ + 0.31583, + 0.26339 + ], + [ + 0.31292, + 0.25949 + ], + [ + 0.31167, + 0.25614 + ], + [ + 0.31125, + 0.25391 + ] + ], + "hintCenter": [ + 0.32206, + 0.25096 + ] + }, + { + "id": "grape_lollipop#3", + "kind": "grape_lollipop", + "label": "Lollipop", + "sprite": "baked/dense_4_grape_lollipop_3.png", + "chip": "baked/chip_grape_lollipop.png", + "pos": [ + 0.26333, + 0.42913 + ], + "size": [ + 0.0325, + 0.08705 + ], + "rotation": 0, + "polygon": [ + [ + 0.24708, + 0.44587 + ], + [ + 0.24833, + 0.43136 + ], + [ + 0.25667, + 0.39565 + ], + [ + 0.25833, + 0.39062 + ], + [ + 0.26042, + 0.38783 + ], + [ + 0.265, + 0.3856 + ], + [ + 0.27, + 0.3856 + ], + [ + 0.27458, + 0.38839 + ], + [ + 0.27708, + 0.39174 + ], + [ + 0.27917, + 0.39844 + ], + [ + 0.27917, + 0.40458 + ], + [ + 0.27542, + 0.45592 + ], + [ + 0.27417, + 0.46261 + ], + [ + 0.2725, + 0.46819 + ], + [ + 0.27, + 0.47042 + ], + [ + 0.26708, + 0.47154 + ], + [ + 0.25958, + 0.4721 + ], + [ + 0.25292, + 0.47042 + ], + [ + 0.25042, + 0.46819 + ], + [ + 0.24792, + 0.45871 + ] + ], + "hintCenter": [ + 0.26473, + 0.42848 + ] + }, + { + "id": "grape_lollipop#4", + "kind": "grape_lollipop", + "label": "Lollipop", + "sprite": "baked/dense_4_grape_lollipop_4.png", + "chip": "baked/chip_grape_lollipop.png", + "pos": [ + 0.66208, + 0.82757 + ], + "size": [ + 0.02917, + 0.06362 + ], + "rotation": 0, + "polygon": [ + [ + 0.6475, + 0.81473 + ], + [ + 0.64875, + 0.80748 + ], + [ + 0.65042, + 0.80357 + ], + [ + 0.65375, + 0.79911 + ], + [ + 0.65667, + 0.79632 + ], + [ + 0.65958, + 0.79576 + ], + [ + 0.66417, + 0.79576 + ], + [ + 0.66625, + 0.79632 + ], + [ + 0.66917, + 0.79799 + ], + [ + 0.67042, + 0.79911 + ], + [ + 0.67292, + 0.80246 + ], + [ + 0.67542, + 0.80804 + ], + [ + 0.67625, + 0.81138 + ], + [ + 0.67625, + 0.8192 + ], + [ + 0.67583, + 0.82143 + ], + [ + 0.66833, + 0.85714 + ], + [ + 0.66708, + 0.85882 + ], + [ + 0.64917, + 0.82533 + ], + [ + 0.64792, + 0.82143 + ], + [ + 0.6475, + 0.81808 + ] + ], + "hintCenter": [ + 0.66224, + 0.81763 + ] + }, + { + "id": "grape_lollipop#5", + "kind": "grape_lollipop", + "label": "Lollipop", + "sprite": "baked/dense_4_grape_lollipop_5.png", + "chip": "baked/chip_grape_lollipop.png", + "pos": [ + 0.75521, + 0.82757 + ], + "size": [ + 0.02875, + 0.06362 + ], + "rotation": 0, + "polygon": [ + [ + 0.74083, + 0.80859 + ], + [ + 0.74125, + 0.80692 + ], + [ + 0.7425, + 0.80413 + ], + [ + 0.74625, + 0.79911 + ], + [ + 0.74958, + 0.79688 + ], + [ + 0.75333, + 0.79576 + ], + [ + 0.75667, + 0.79576 + ], + [ + 0.76, + 0.79688 + ], + [ + 0.76375, + 0.79967 + ], + [ + 0.76583, + 0.80246 + ], + [ + 0.76667, + 0.80413 + ], + [ + 0.76875, + 0.81027 + ], + [ + 0.76917, + 0.81417 + ], + [ + 0.76917, + 0.81808 + ], + [ + 0.76833, + 0.82254 + ], + [ + 0.76625, + 0.82757 + ], + [ + 0.7475, + 0.85882 + ], + [ + 0.74667, + 0.85882 + ], + [ + 0.74542, + 0.85658 + ], + [ + 0.74167, + 0.82031 + ] + ], + "hintCenter": [ + 0.75453, + 0.81727 + ] + }, + { + "id": "pinwheel", + "kind": "pinwheel", + "label": "Pinwheel", + "sprite": "baked/dense_4_pinwheel.png", + "chip": "baked/chip_pinwheel.png", + "pos": [ + 0.47167, + 0.06083 + ], + "size": [ + 0.0325, + 0.05246 + ], + "rotation": 0, + "polygon": [ + [ + 0.45542, + 0.06585 + ], + [ + 0.45875, + 0.0452 + ], + [ + 0.45917, + 0.04353 + ], + [ + 0.46083, + 0.03906 + ], + [ + 0.46167, + 0.03739 + ], + [ + 0.46292, + 0.03516 + ], + [ + 0.46333, + 0.0346 + ], + [ + 0.46417, + 0.0346 + ], + [ + 0.47917, + 0.03962 + ], + [ + 0.48083, + 0.04018 + ], + [ + 0.485, + 0.04297 + ], + [ + 0.48625, + 0.04408 + ], + [ + 0.4875, + 0.04576 + ], + [ + 0.4875, + 0.04632 + ], + [ + 0.4825, + 0.06864 + ], + [ + 0.48167, + 0.07199 + ], + [ + 0.47958, + 0.07757 + ], + [ + 0.46792, + 0.0865 + ], + [ + 0.46625, + 0.0865 + ], + [ + 0.45542, + 0.06696 + ] + ], + "hintCenter": [ + 0.4708, + 0.05739 + ] + }, + { + "id": "pinwheel#2", + "kind": "pinwheel", + "label": "Pinwheel", + "sprite": "baked/dense_4_pinwheel_2.png", + "chip": "baked/chip_pinwheel.png", + "pos": [ + 0.84667, + 0.65765 + ], + "size": [ + 0.03167, + 0.08873 + ], + "rotation": 0, + "polygon": [ + [ + 0.83083, + 0.64062 + ], + [ + 0.83417, + 0.62277 + ], + [ + 0.83458, + 0.62054 + ], + [ + 0.835, + 0.61942 + ], + [ + 0.83542, + 0.6183 + ], + [ + 0.83583, + 0.61775 + ], + [ + 0.85, + 0.61328 + ], + [ + 0.85167, + 0.61328 + ], + [ + 0.85208, + 0.61384 + ], + [ + 0.86167, + 0.62779 + ], + [ + 0.86208, + 0.62891 + ], + [ + 0.86208, + 0.63002 + ], + [ + 0.8475, + 0.70033 + ], + [ + 0.84708, + 0.70089 + ], + [ + 0.84625, + 0.70145 + ], + [ + 0.84458, + 0.70145 + ], + [ + 0.84417, + 0.70089 + ], + [ + 0.84375, + 0.69978 + ], + [ + 0.83083, + 0.64174 + ] + ], + "hintCenter": [ + 0.84633, + 0.64293 + ] + }, + { + "id": "kite", + "kind": "kite", + "label": "Kite", + "sprite": "baked/dense_4_kite.png", + "chip": "baked/chip_kite.png", + "pos": [ + 0.82521, + 0.06501 + ], + "size": [ + 0.03958, + 0.07645 + ], + "rotation": 0, + "polygon": [ + [ + 0.80542, + 0.05636 + ], + [ + 0.81, + 0.0279 + ], + [ + 0.81083, + 0.02679 + ], + [ + 0.8125, + 0.02734 + ], + [ + 0.83208, + 0.03404 + ], + [ + 0.8325, + 0.0346 + ], + [ + 0.83292, + 0.03571 + ], + [ + 0.8425, + 0.08203 + ], + [ + 0.84458, + 0.09431 + ], + [ + 0.84458, + 0.0971 + ], + [ + 0.84417, + 0.09877 + ], + [ + 0.84333, + 0.09989 + ], + [ + 0.84042, + 0.10212 + ], + [ + 0.83583, + 0.10268 + ], + [ + 0.835, + 0.10156 + ], + [ + 0.80542, + 0.05859 + ] + ], + "hintCenter": [ + 0.82342, + 0.0557 + ] + }, + { + "id": "top_hat", + "kind": "top_hat", + "label": "Top Hat", + "sprite": "baked/dense_4_top_hat.png", + "chip": "baked/chip_top_hat.png", + "pos": [ + 0.54083, + 0.86328 + ], + "size": [ + 0.035, + 0.05357 + ], + "rotation": 0, + "polygon": [ + [ + 0.52333, + 0.85938 + ], + [ + 0.52417, + 0.83929 + ], + [ + 0.52542, + 0.83817 + ], + [ + 0.53125, + 0.8365 + ], + [ + 0.53792, + 0.8365 + ], + [ + 0.54, + 0.83705 + ], + [ + 0.54125, + 0.83761 + ], + [ + 0.54208, + 0.83817 + ], + [ + 0.55042, + 0.84877 + ], + [ + 0.5525, + 0.85156 + ], + [ + 0.55792, + 0.88058 + ], + [ + 0.55792, + 0.88225 + ], + [ + 0.55708, + 0.88504 + ], + [ + 0.55625, + 0.88616 + ], + [ + 0.55333, + 0.88951 + ], + [ + 0.54792, + 0.88951 + ], + [ + 0.52625, + 0.88393 + ], + [ + 0.52458, + 0.88337 + ], + [ + 0.52375, + 0.88225 + ], + [ + 0.52333, + 0.87723 + ] + ], + "hintCenter": [ + 0.53662, + 0.86052 + ] + }, + { + "id": "silver_whistle", + "kind": "silver_whistle", + "label": "Whistle", + "sprite": "baked/dense_4_silver_whistle.png", + "chip": "baked/chip_silver_whistle.png", + "pos": [ + 0.94021, + 0.06445 + ], + "size": [ + 0.03375, + 0.02734 + ], + "rotation": 0, + "polygon": [ + [ + 0.92333, + 0.06808 + ], + [ + 0.92458, + 0.06529 + ], + [ + 0.93583, + 0.05469 + ], + [ + 0.93958, + 0.0519 + ], + [ + 0.94167, + 0.05078 + ], + [ + 0.94583, + 0.05078 + ], + [ + 0.95458, + 0.05413 + ], + [ + 0.95542, + 0.05469 + ], + [ + 0.95667, + 0.05636 + ], + [ + 0.95667, + 0.06027 + ], + [ + 0.955, + 0.06864 + ], + [ + 0.95375, + 0.07199 + ], + [ + 0.95208, + 0.07422 + ], + [ + 0.95083, + 0.07533 + ], + [ + 0.94833, + 0.07645 + ], + [ + 0.93083, + 0.07757 + ], + [ + 0.92958, + 0.07757 + ], + [ + 0.92542, + 0.07478 + ], + [ + 0.92375, + 0.07199 + ], + [ + 0.92333, + 0.06975 + ] + ], + "hintCenter": [ + 0.94123, + 0.06466 + ] + }, + { + "id": "silver_whistle#2", + "kind": "silver_whistle", + "label": "Whistle", + "sprite": "baked/dense_4_silver_whistle_2.png", + "chip": "baked/chip_silver_whistle.png", + "pos": [ + 0.95042, + 0.16155 + ], + "size": [ + 0.02917, + 0.02288 + ], + "rotation": 0, + "polygon": [ + [ + 0.93583, + 0.16295 + ], + [ + 0.93833, + 0.1596 + ], + [ + 0.94, + 0.15792 + ], + [ + 0.94542, + 0.1529 + ], + [ + 0.94875, + 0.15067 + ], + [ + 0.95, + 0.15011 + ], + [ + 0.95542, + 0.15011 + ], + [ + 0.9625, + 0.15402 + ], + [ + 0.96375, + 0.15513 + ], + [ + 0.96458, + 0.15792 + ], + [ + 0.96417, + 0.16016 + ], + [ + 0.96208, + 0.16685 + ], + [ + 0.96125, + 0.16853 + ], + [ + 0.96, + 0.1702 + ], + [ + 0.95875, + 0.17132 + ], + [ + 0.9575, + 0.17188 + ], + [ + 0.94125, + 0.17243 + ], + [ + 0.93958, + 0.17132 + ], + [ + 0.93833, + 0.1702 + ], + [ + 0.93583, + 0.16741 + ] + ], + "hintCenter": [ + 0.95062, + 0.16176 + ] + }, + { + "id": "silver_whistle#3", + "kind": "silver_whistle", + "label": "Whistle", + "sprite": "baked/dense_4_silver_whistle_3.png", + "chip": "baked/chip_silver_whistle.png", + "pos": [ + 0.93896, + 0.71652 + ], + "size": [ + 0.03125, + 0.03125 + ], + "rotation": 0, + "polygon": [ + [ + 0.92333, + 0.72154 + ], + [ + 0.92625, + 0.71652 + ], + [ + 0.93167, + 0.70871 + ], + [ + 0.93625, + 0.70312 + ], + [ + 0.93833, + 0.70145 + ], + [ + 0.94417, + 0.70089 + ], + [ + 0.95125, + 0.70145 + ], + [ + 0.95292, + 0.70201 + ], + [ + 0.95375, + 0.70312 + ], + [ + 0.95417, + 0.71317 + ], + [ + 0.95417, + 0.71875 + ], + [ + 0.95375, + 0.72042 + ], + [ + 0.95292, + 0.7221 + ], + [ + 0.95042, + 0.72545 + ], + [ + 0.9475, + 0.72712 + ], + [ + 0.93167, + 0.73158 + ], + [ + 0.93, + 0.73158 + ], + [ + 0.925, + 0.72768 + ], + [ + 0.92375, + 0.726 + ], + [ + 0.92333, + 0.72433 + ] + ], + "hintCenter": [ + 0.94005, + 0.71593 + ] + }, + { + "id": "silver_whistle#4", + "kind": "silver_whistle", + "label": "Whistle", + "sprite": "baked/dense_4_silver_whistle_4.png", + "chip": "baked/chip_silver_whistle.png", + "pos": [ + 0.94042, + 0.78432 + ], + "size": [ + 0.03417, + 0.02846 + ], + "rotation": 0, + "polygon": [ + [ + 0.92333, + 0.78627 + ], + [ + 0.92625, + 0.78237 + ], + [ + 0.93542, + 0.77288 + ], + [ + 0.93875, + 0.77065 + ], + [ + 0.94, + 0.77009 + ], + [ + 0.9475, + 0.77009 + ], + [ + 0.955, + 0.77288 + ], + [ + 0.95708, + 0.77567 + ], + [ + 0.95708, + 0.77846 + ], + [ + 0.95625, + 0.78795 + ], + [ + 0.95542, + 0.79074 + ], + [ + 0.95458, + 0.79241 + ], + [ + 0.95333, + 0.79408 + ], + [ + 0.95042, + 0.79632 + ], + [ + 0.94875, + 0.79688 + ], + [ + 0.93083, + 0.79799 + ], + [ + 0.93, + 0.79799 + ], + [ + 0.92667, + 0.7952 + ], + [ + 0.92417, + 0.79297 + ], + [ + 0.92333, + 0.79074 + ] + ], + "hintCenter": [ + 0.9412, + 0.78432 + ] + } + ] +} diff --git a/assets/levels/levels.json b/assets/levels/levels.json index ed93c23..95b01f6 100644 --- a/assets/levels/levels.json +++ b/assets/levels/levels.json @@ -67,6 +67,23 @@ }, "scenes": 4, "thumbnail": "background.jpg" + }, + { + "id": "funfair", + "name": "Funfair", + "theme": "funfair", + "objectCount": 15, + "maxObjects": 15, + "variants": { + "dense": { + "objectCount": 17, + "maxObjects": 17, + "scenes": 4, + "thumbnail": "background_dense.jpg" + } + }, + "scenes": 4, + "thumbnail": "background.jpg" } ] } diff --git a/docs/imgenprompts/funfair.md b/docs/imgenprompts/funfair.md new file mode 100644 index 0000000..2e61043 --- /dev/null +++ b/docs/imgenprompts/funfair.md @@ -0,0 +1,366 @@ +# Funfair - the wheel, the teacups and the stalls + +Level id `funfair`, a fairground for the kids catalog ([kids-direction.md](../kids-direction.md#catalog)). +Style comes from [art-direction.md](art-direction.md) and is repeated inline below so the prompts can be generated straight from this file. + +Twelve props, every one a fair thing a five-year-old can name, each with its own dominant colour. +The rides and the stalls are painted into the plates, not hidden: a child looking for a ferris wheel at a fair is looking for the scenery. +The games are a ball-toss stall and a hoopla stall rather than a shooting gallery, because the listing is 4+ in the Kids Category. +There is no hook-a-duck pool and no teddy on a prize shelf, because the duck and the bear are finds and a look-alike in the scenery makes the real one unanswerable. + +This level is baked from the start, so it has no Backdrop, no Dense backdrop and no meta file: two plates, two sheets and eight pictures. +See [scene-pipeline.md](../scene-pipeline.md#the-other-shape-a-baked-scene). + +Generate with: + +```bash +tools/scene.sh art docs/imgenprompts/funfair.md --only "Sheet 1" --only "Sheet 2" \ + --only "Plate look" --only "Plate hunt" +``` + +## Sheet 1 + +```prompt +Six separate game asset sprites for a children's hidden object game, arranged in a 3x2 +grid, evenly spaced, none touching or overlapping: a brown teddy bear sitting up facing +front, a pink cotton candy cloud on a paper stick, a red and yellow vertically striped +popcorn box overflowing with yellow popcorn, a single scoop mint green ice cream in a tan +waffle cone, a small clear goldfish bag tied at the top holding pale blue water and one +orange goldfish, a yellow rubber duck with an orange beak. +Each cell holds one single solid object and nothing else: no sparkles, no stars, no +glints, no specks, no motion lines floating around it. +No white or near-white parts on any object: the popcorn box stripes are red and yellow, +never white, the ice cream is mint green, the bag's water is pale blue, the duck is +yellow all over with an orange beak. +Flat 2D vector cartoon illustration for a children's game. +Thick uniform dark outlines, big simple rounded shapes, flat cel shading with a single +soft shadow tone, bright saturated primary colours, cheerful and friendly. +No gradients, no texture, no painterly brushwork, no photorealism. +Matte flat colour fills only, the way a paint bucket fills a shape: one solid colour per +part, with at most one slightly darker flat shape for shadow, and hard edges between +them. NO airbrush shading, NO glossy shine, NO white or pale highlight blobs, NO shiny +dots, NO rim light, NO soft colour gradients, NO plastic or 3D render look, NO white +sticker rim around the outline. Same thick even line weight on every object. +Bright friendly colours in the range a cartoon fairground uses, never neon or glowing. +Each object fully visible inside its own cell, complete silhouette, nothing cropped, +neutral three-quarter angle, big simple readable shapes. +Generic soft ambient lighting. Every object floats on empty white with nothing under it: +NO drop shadow, NO cast shadow, NO grey or coloured shadow ellipse beneath the object, NO +contact shadow of any kind, no ground plane, no reflections, no background elements. The +game draws its own shadow when it places the object, so one drawn here is one too many. +Do NOT draw the grid: no lines, no borders, no frames and no boxes between or around the +cells, just the six objects floating on one unbroken white field. +Plain solid pure white background #FFFFFF. +Ultra high resolution, sharp crisp linework. +No text, no watermarks. +``` + +Cells in reading order: `teddy_bear`, `cotton_candy`, `popcorn`, `ice_cream`, `goldfish_bag`, `rubber_duck`. + +## Sheet 2 + +```prompt +Six separate game asset sprites for a children's hidden object game, arranged in a 3x2 +grid, evenly spaced, none touching or overlapping: a single round blue balloon on a brown +string, a purple swirl lollipop on a stick, a rainbow striped toy pinwheel on a stick, a +teal diamond shaped kite with a short tail of bows, a black top hat with a red band, a +silver grey whistle on a short cord. +Each cell holds one single solid object and nothing else: no sparkles, no stars, no +glints, no specks, no motion lines floating around it. +No white or near-white parts on any object: the balloon string is brown, the lollipop +swirl is purple and lilac, the kite tail bows are teal and dark teal, the whistle is a mid +grey with a darker grey shadow, never white. +Flat 2D vector cartoon illustration for a children's game. +Thick uniform dark outlines, big simple rounded shapes, flat cel shading with a single +soft shadow tone, bright saturated primary colours, cheerful and friendly. +No gradients, no texture, no painterly brushwork, no photorealism. +Matte flat colour fills only, the way a paint bucket fills a shape: one solid colour per +part, with at most one slightly darker flat shape for shadow, and hard edges between +them. NO airbrush shading, NO glossy shine, NO white or pale highlight blobs, NO shiny +dots, NO rim light, NO soft colour gradients, NO plastic or 3D render look, NO white +sticker rim around the outline. Same thick even line weight on every object. +Bright friendly colours in the range a cartoon fairground uses, never neon or glowing. +Each object fully visible inside its own cell, complete silhouette, nothing cropped, +neutral three-quarter angle, big simple readable shapes. +Generic soft ambient lighting. Every object floats on empty white with nothing under it: +NO drop shadow, NO cast shadow, NO grey or coloured shadow ellipse beneath the object, NO +contact shadow of any kind, no ground plane, no reflections, no background elements. The +game draws its own shadow when it places the object, so one drawn here is one too many. +Do NOT draw the grid: no lines, no borders, no frames and no boxes between or around the +cells, just the six objects floating on one unbroken white field. +Plain solid pure white background #FFFFFF. +Ultra high resolution, sharp crisp linework. +No text, no watermarks. +``` + +Cells in reading order: `blue_balloon`, `grape_lollipop`, `pinwheel`, `kite`, `top_hat`, `silver_whistle`. + +## Props and labels + +| Id | Label | Colour | Category | +| --- | --- | --- | --- | +| `teddy_bear` | Teddy Bear | brown | toys | +| `cotton_candy` | Cotton Candy | pink | food | +| `popcorn` | Popcorn | red | food | +| `ice_cream` | Ice Cream | mint green | food | +| `goldfish_bag` | Goldfish | orange | animals | +| `rubber_duck` | Rubber Duck | yellow | toys | +| `blue_balloon` | Balloon | blue | flying | +| `grape_lollipop` | Lollipop | purple | food | +| `pinwheel` | Pinwheel | rainbow | toys | +| `kite` | Kite | teal | flying | +| `top_hat` | Top Hat | black | - | +| `silver_whistle` | Whistle | silver | - | + +The colour and category columns are what the later find-by-colour and find-by-category asks read from, so keep them accurate to the art that actually comes back. + +## Plate look + +The fairground the Peek and Look pictures are baked from: a whole fair seen from the air, +full of people, busy but readable at five. +See [scene-pipeline.md](../scene-pipeline.md#the-other-shape-a-baked-scene). + +This level breaks two of the backdrop rules in [art-direction.md](art-direction.md) on +purpose. It is drawn from high up at a steep angle, because a fair is a field of rides +and stalls and a straight-on view shows one row of them; and it is full of cartoon +people, because a fair with nobody at it is a car park. Both were rules for the sprite +placer's rest lines, and a baked level has none. + +```prompt +A big, bustling funfair on a sunny day seen from high up in the air, background art for a +hidden object game for children aged five to seven. +STRICT RULE, more important than anything else below: this picture must contain NO teddy +bears or plush toys of any kind, NO cotton candy or candy floss, NO popcorn or popcorn +boxes, NO ice cream cones, NO goldfish or fish bowls or bags of water, NO rubber ducks +or ducks of any kind, NO balloons, NO lollipops, NO pinwheels or windmills, NO kites, NO +hats or caps on anyone, NO whistles, anywhere: not on a stall shelf, not on a sign, not +as a prize and not in anybody's hand. Nobody in the picture holds or carries anything at +all; hands are empty, in pockets, waving, or holding another person's hand. Those objects +are added afterwards, and one of them painted into the scenery makes the real one +impossible to find. Prizes on the stalls are boxed board games and green plush dinosaurs; +the sweet stall sells jars of round boiled sweets and jelly beans; food stands sell hot +dogs, pretzels and lemonade. Every sign, board, booth and awning is a plain striped or +plain coloured panel with NO writing of any kind on it, not a single letter. There is NO ticket booth and NO word TICKET anywhere, NO chalkboard, NO menu +board, NO poster and NO price sign. +Flat 2D vector cartoon illustration for a children's game. +Thick uniform dark outlines, big simple rounded shapes, flat cel shading with a single +soft shadow tone, bright saturated primary colours, cheerful and friendly. +No gradients, no texture, no painterly brushwork, no photorealism. +The view is from high above the fair at a steep three-quarter angle, like a bird flying +over it: the ground fills the frame from the bottom edge to a thin strip of sky and +distant trees along the very top, and the fair is laid out across the whole field in +rows, with sandy paths winding between the rides and the stalls and people walking on +them. Things at the bottom of the picture are nearer and bigger, things at the top are +further and smaller, like a real fairground seen from a hill or a drone. +The fair is laid out like a real one: a big ferris wheel with round gondolas, a teacup +ride with big pastel teacups on a round striped platform, a carousel of flying swings, a +helter skelter, a bumper car arena with a striped roof, a small stage with bunting, rows +of striped stalls and tents with awnings, a sweet stall with shelves of sweet jars, a +lemonade and hot dog stand, a pretzel cart, a ball-toss stall with pyramids of tin cans, +a hoopla stall with pegs and rings, a high-striker tower with a bell, a small striped +kiosk with a blank board, picnic tables and benches, litter bins, lamp posts with strings of fairy lights, stacked +crates and barrels behind the stalls, hay bales, flower tubs, striped barrier fences, a +generator trailer, and trees and hedges around the edge of the field. +The fair is full of cartoon people: grown-ups and children walking the paths in twos and +threes, queueing at the stalls, sitting in the teacups and the gondolas, standing at the +counters, children holding a grown-up's hand, a child on a grown-up's shoulders, people +sitting at the picnic tables. Simple friendly cartoon figures in exactly the same flat +style as everything else: round heads, dot eyes, big smiles, varied skin tones and hair, +bright plain clothes, no hats, and empty hands. They are small in the picture, part of +the crowd, never a close-up. +Every counter and shelf holds something and no patch of ground is bare, but each thing has +room around it: a five year old has to be able to tell one object from the next at arm's +length. +Vary the tone across the picture: darker grass in the shade of the rides and tents, +bright lawn in the open, sandy paths and grey tarmac under the bumper cars, so the field +is not one flat tone. +Bright even daylight everywhere, no dark corners, no dramatic shadows, nothing scary. +IMPORTANT: only fixed rides, stalls, furniture, decor and people; no small loose objects +lying around and nothing in anybody's hands, those are added afterwards. +Landscape aspect ratio 4:3, wide horizontal composition, ultra high resolution. +No animals, no text, no letters, no numbers, no watermarks. +``` + +## Plate hunt + +The empty fairground the Seek and Hunt pictures are baked from: three to four times as +packed, with a layered, partly see-through foreground for finds to hide behind. + +```prompt +A big, bustling funfair on a sunny day seen from high up in the air, background art for a +hidden object game for children aged eight to twelve, as densely packed as a grown-up +"find the hidden objects" page. +STRICT RULE, more important than anything else below: this picture must contain NO teddy +bears or plush toys of any kind, NO cotton candy or candy floss, NO popcorn or popcorn +boxes, NO ice cream cones, NO goldfish or fish bowls or bags of water, NO rubber ducks +or ducks of any kind, NO balloons, NO lollipops, NO pinwheels or windmills, NO kites, NO +hats or caps on anyone, NO whistles, anywhere: not on a stall shelf, not on a sign, not +as a prize and not in anybody's hand. Nobody in the picture holds or carries anything at +all; hands are empty, in pockets, waving, or holding another person's hand. Those objects +are added afterwards, and one of them painted into the scenery makes the real one +impossible to find. The prize shelves hold ONLY boxed board games and green plush +dinosaurs, never a bear and never any other soft toy; the sweet stall sells jars of round +boiled sweets and jelly beans; food stands sell hot dogs, pretzels and lemonade. Every +sign, board, booth and awning is a plain striped or plain coloured panel with NO writing +of any kind on it, not a single letter. There is NO ticket booth and NO word TICKET +anywhere, NO chalkboard, NO menu board, NO poster and NO price sign. No stall is decorated +with a painting of a fish, a duck, a balloon or any animal. +Flat 2D vector cartoon illustration for a children's game. +Thick uniform dark outlines, big simple rounded shapes, flat cel shading with a single +soft shadow tone, bright saturated primary colours, cheerful and friendly. +No gradients, no texture, no painterly brushwork, no photorealism. +The view is from high above the fair at a steep three-quarter angle, like a bird flying +over it: the ground fills the frame from the bottom edge to a thin strip of sky and +distant trees along the very top, and the fair is laid out across the whole field in +rows, with sandy paths winding between the rides and the stalls and crowds walking on +them. Things at the bottom of the picture are nearer and bigger, things at the top are +further and smaller, like a real fairground seen from a hill or a drone. +The fair is laid out like a real one: a big ferris wheel with round gondolas, a teacup +ride with big pastel teacups on a round striped platform, a carousel of flying swings, a +helter skelter, a bumper car arena with a striped roof, a small stage with bunting, rows +of striped stalls and tents with awnings, a sweet stall with shelves of sweet jars, a +lemonade and hot dog stand, a pretzel cart, a ball-toss stall with pyramids of tin cans, +a hoopla stall with pegs and rings, a high-striker tower with a bell, a small striped +kiosk with a blank board, picnic tables and benches, litter bins, lamp posts with strings of fairy lights, stacked +crates and barrels behind the stalls, hay bales, flower tubs, striped barrier fences, a +generator trailer, coiled cables, a drinks fridge, stacks of plastic cups, a stack of +folding tables, deckchairs, a wheelbarrow, and trees and hedges around the edge of the +field. +Fill it: every counter, shelf and ledge is packed end to end, every path has people on +it, every ride has riders, every stall has a queue, and the spaces between are full of +benches, bins, crates, barrels, tubs and bunting poles. +The fair is crowded with cartoon people: grown-ups and children walking the paths in +groups, queueing at the stalls, sitting in the teacups, the gondolas and the swings, +standing at the counters, children holding a grown-up's hand, children on shoulders, +people sitting at the picnic tables, a crowd in front of the stage. Simple friendly +cartoon figures in exactly the same flat style as everything else: round heads, dot eyes, +big smiles, varied skin tones and hair, bright plain clothes, no hats, and empty hands. +They are small in the picture, part of the crowd, never a close-up. +Draw the small things small: a picture crowded with hand-sized objects rather than a few +big ones, dozens of separate items, so that one more object among them would not stand +out. +Layer the depth: people standing in front of counters, crates in front of stalls, +bunting poles, strings of lights, railings, netting on the ball stall and the rungs of a +stepladder, so what is behind shows in the gaps and anything standing there is partly +covered. +Vary the tone across the picture: deep shadowed spaces under the stalls and behind the +crates against pale awnings and bright ground, so there are places a dark thing can sink +into and places a light thing can. +Bright even daylight everywhere, no dark corners, nothing gloomy and nothing scary. +IMPORTANT: only fixed rides, stalls, furniture, decor and people; no small loose objects +lying around and nothing in anybody's hands, those are added afterwards. +Landscape aspect ratio 4:3, wide horizontal composition, ultra high resolution. +No animals, no text, no letters, no numbers, no watermarks. +``` + +## Baked look + +Four pictures for Peek and Look, drawn from [Plate look](#plate-look): fourteen finds each, +two of the twelve twice. + +```bash +tools/scene.sh art docs/imgenprompts/funfair.md --only "Baked look" --takes 4 \ + --from rawimages/funfair/plate_look.jpeg --force +``` + +```prompt +Here is a finished cartoon picture, background art for a children's hidden object game. + +Return the SAME picture, pixel for pixel unchanged, with these fourteen objects added into it +and nothing else altered: +1. a brown teddy bear sitting up +2. a pink cotton candy cloud on a paper stick +3. a red and yellow striped popcorn box full of yellow popcorn +4. a mint green ice cream in a tan waffle cone +5. a small bag of pale blue water with one orange goldfish in it +6. a yellow rubber duck with an orange beak +7. a single round blue balloon on a string +8. a purple swirl lollipop on a stick +9. a rainbow striped toy pinwheel on a stick +10. a teal diamond shaped kite with a short tail +11. a black top hat with a red band +12. a silver grey whistle on a cord +13. a second yellow rubber duck, somewhere else entirely +14. a second purple swirl lollipop, somewhere else entirely + +Do not redraw, move, recolour or restyle anything already in the picture: every ride, +stall, counter, shelf, crate, fence, piece of decor and every person must come back +exactly as it is, in the same place, at the same size, in the same colours. Do not add, +remove or move any person. Only the fourteen objects are new, and none of them is held or +carried by a person: each one is resting, leaning, tied or lying somewhere. +Each is drawn in the picture's own style - the same thick dark outline of the same weight, +the same flat cel colours, the same single soft shadow tone - with the picture's own soft +shadow under it where it rests, so it reads as painted into the picture rather than pasted +on top of it. +Each is about as wide as one of the sweet jars on the stall shelves, roughly a fourteenth +of the picture across. +Each is left where that thing would plausibly be left, among the fair's own things: on a +counter, on a shelf, on a bench, in a teacup, on a crate, on a hay bale, on the fence +rail, by a tent. None of them stands alone in the middle of an empty patch of grass, path +or sky. +Four or five of the fourteen are partly behind something already in the picture, so only +part of each shows. +No two of the fourteen touch or overlap each other, and none is cut off by the edge of the +frame. +No text, no letters, no numbers, no people, no watermarks. +``` + +## Baked hunt + +Four pictures for Seek and Hunt, drawn from [Plate hunt](#plate-hunt): twenty finds each, +eight of the twelve twice, all of them small. + +```bash +tools/scene.sh art docs/imgenprompts/funfair.md --only "Baked hunt" --takes 4 \ + --from rawimages/funfair/plate_hunt.jpeg --force +``` + +```prompt +Here is a finished cartoon picture, background art for a children's hidden object game. + +Return the SAME picture, pixel for pixel unchanged, with these twenty objects added into it +and nothing else altered: +1. a brown teddy bear sitting up +2. a pink cotton candy cloud on a paper stick +3. a red and yellow striped popcorn box full of yellow popcorn +4. a mint green ice cream in a tan waffle cone +5. a small bag of pale blue water with one orange goldfish in it +6. a yellow rubber duck with an orange beak +7. a single round blue balloon on a string +8. a purple swirl lollipop on a stick +9. a rainbow striped toy pinwheel on a stick +10. a teal diamond shaped kite with a short tail +11. a black top hat with a red band +12. a silver grey whistle on a cord +13. a second yellow rubber duck +14. a second purple swirl lollipop +15. a second brown teddy bear +16. a second mint green ice cream cone +17. a second blue balloon +18. a second rainbow pinwheel +19. a second teal kite +20. a second silver grey whistle + +Do not redraw, move, recolour or restyle anything already in the picture: every ride, +stall, counter, shelf, crate, fence, piece of decor and every person must come back +exactly as it is, in the same place, at the same size, in the same colours. Do not add, +remove or move any person. Only the twenty objects are new, and none of them is held or +carried by a person: each one is resting, leaning, tied or lying somewhere. +Each is drawn in the picture's own style - the same thick dark outline of the same weight, +the same flat cel colours, the same single soft shadow tone - with the picture's own soft +shadow under it where it rests, so it reads as painted into the picture rather than pasted +on top of it. +Draw them SMALL: each object is about a twentieth of the picture across, the size of the +smallest things already in the fair, never bigger than one of the sweet jars. A child of +eleven should have to look for them. +Each goes deep among the fair's own things, where a real object would end up: pushed to +the back of a shelf, half inside a crate, behind the sweet jars, under a counter, tucked +into the netting, inside a teacup, between the hay bales, behind the foreground fence, on +top of an awning. None of them stands alone on an empty patch of grass, path or sky. +At least twelve of the twenty are partly hidden behind something already in the picture, +so only part of each one shows - but never hide one completely: a piece of every object +stays visible. +No two of the twenty touch or overlap each other, and none is cut off by the edge of the +frame. +No text, no letters, no numbers, no people, no watermarks. +``` diff --git a/docs/scene-pipeline.md b/docs/scene-pipeline.md index 6e811df..2e3149b 100644 --- a/docs/scene-pipeline.md +++ b/docs/scene-pipeline.md @@ -86,7 +86,11 @@ The object list's icons do not come from the picture at all: they are cut from t The bar states what is being looked for, and this picture's copy of it is half behind a barrel with the barrel's corner in the crop - that is the puzzle, and putting it in the bar gives it away while looking like a mistake. So a level ships `baked/chip_.png` once and every picture of it points at the same file. -`bake` still asks a vision model where each find is, cached in `tools/scenes/[.variant].baked.json`, but only to name the blobs: the box has to overlap the right one, not to measure it. +`bake` still asks a vision model, cached in `tools/scenes/[.variant].baked.json`, but with a plate the question is the other way round: the changed patches are already known, so each one is cropped onto a numbered contact sheet (`tools/scenes/[.variant]..sheet.png`) and the model says which find it is, or none. +Naming a crop is a far easier question than aiming a box at a duck in a crowd, which is what the funfair's aerial pictures made plain: asked where the finds were, the model put half its boxes a stall to the left. +A crowded plate also comes back with every figure's outline redrawn a pixel to one side; those hairlines are dropped (`HAIRLINE`) before patches are joined, or they rope the finds into one tangle. +A fitting the illustrator nudged while drawing - a bench moved three pixels, a ride's outline redrawn - is a solid patch of difference too, and it welds itself to the find leaning on it; so a pixel only counts as drawn when no patch of the plate within `SHIFT` pixels of it matches (`_novelty`). What that cannot separate is furniture the illustrator invented for a find to sit on: it is in no plate, so it ships as part of the stamp and fades with it. +The answer is written as boxes, one per sighting, so a hand correction and a bake without a plate read the same file. It prints what it found, flags anything missing or too small to tap, and says how many changed patches no find claimed - the model touches up a fitting here and there while it draws, and a high count means the plate and the picture have drifted apart. A find drawn twice is kept as two copies rather than treated as a fault; the game already knows how to ask for two of a thing. diff --git a/integration_test/store_screenshots_test.dart b/integration_test/store_screenshots_test.dart index f119e4c..ca507b6 100644 --- a/integration_test/store_screenshots_test.dart +++ b/integration_test/store_screenshots_test.dart @@ -27,6 +27,7 @@ const _shotName = { 'Rainbow Meadow': 'rainbow_meadow', 'Space Station': 'space_station', "Captain's Cabin": 'pirate_cabin', + 'Funfair': 'funfair', }; void main() { @@ -186,14 +187,9 @@ void main() { // room, which takes minutes, ends with the level-complete fanfare, and is // where every failure this rig has ever had has happened. Taken last, a // bad run costs one shot instead of the set. - for (final room in const [ - 'Toy Room', - 'Rainbow Meadow', - 'Space Station', - "Captain's Cabin", - ]) { - await openLevel(tester, room); - await shot(tester, _shotName[room]!); + for (final room in _shotName.entries) { + await openLevel(tester, room.key); + await shot(tester, room.value); await tester.pageBack(); await steady(tester, const Duration(milliseconds: 800)); } diff --git a/pubspec.yaml b/pubspec.yaml index 473abdd..e946d20 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: peepo description: "Hidden object game - find items in cluttered scenes." publish_to: 'none' -version: 1.14.1+25 +version: 1.15.1+27 environment: sdk: ^3.9.2 @@ -32,10 +32,12 @@ flutter: # level needs its two lines here - `tools/scene.sh build` adds them. assets: - assets/levels/rainbow_meadow/ + - assets/levels/funfair/ - assets/levels/space_station/baked/ - assets/levels/toy_room/baked/ - assets/levels/rainbow_meadow/baked/ - assets/levels/pirate_cabin/baked/ + - assets/levels/funfair/baked/ # The music, one track per level plus the one under the level list, and # the effects. Both folders are written by `tools/audio.sh`. - assets/audio/music/ diff --git a/test/level_grid_test.dart b/test/level_grid_test.dart index 7150ace..75a2314 100644 --- a/test/level_grid_test.dart +++ b/test/level_grid_test.dart @@ -65,12 +65,11 @@ void main() { }); } - testWidgets('four levels are laid out two by two on a tablet', ( - tester, - ) async { - // Not three and one with a hole beside it, which is what sizing the cards - // by the row alone gives: two by two only looks too big for the screen - // until the cards are allowed to shrink into it. + testWidgets('the catalog fills a tablet in two rows', (tester) async { + // Not a row with a hole beside it and a lone card below, which is what + // sizing the cards by the row alone gives: two rows only look too big for + // the screen until the cards are allowed to shrink into it. Four levels + // land as two by two, five as three by two. await tester.binding.setSurfaceSize(const Size(1376, 1032)); addTearDown(() => tester.binding.setSurfaceSize(null)); @@ -95,7 +94,7 @@ void main() { expect( tops.values.toSet(), hasLength(2), - reason: 'four levels should sit in two rows, not $tops', + reason: 'the levels should sit in two rows, not $tops', ); }); } diff --git a/tools/audio/funfair.raw.mp3 b/tools/audio/funfair.raw.mp3 new file mode 100644 index 0000000..e37fc45 Binary files /dev/null and b/tools/audio/funfair.raw.mp3 differ diff --git a/tools/audio_prompts.json b/tools/audio_prompts.json index f94301a..2d61dcf 100644 --- a/tools/audio_prompts.json +++ b/tools/audio_prompts.json @@ -19,5 +19,7 @@ "space_station": "A dreamy, weightless instrumental for a children's game set in a space station. Soft analogue synth pads and a slow bell arpeggio over a quiet pulsing bass, with occasional twinkling high notes. Wonder rather than tension, calm and spacious, nothing eerie. Fully instrumental, no vocals. Even dynamics, no builds and no sudden hits, ending the way it began so it can loop. About 2 minutes long.", - "rainbow_meadow": "A sunlit pastoral instrumental for a children's game set in a flowery meadow, playing softly beneath the action. Fingerpicked acoustic guitar and a warm flute melody over soft strings, light shaker and gentle birdsong. Open, breezy and happy, unhurried. Fully instrumental, no vocals. Even dynamics, no builds and no sudden hits, ending the way it began so it can loop. About 2 minutes long." + "rainbow_meadow": "A sunlit pastoral instrumental for a children's game set in a flowery meadow, playing softly beneath the action. Fingerpicked acoustic guitar and a warm flute melody over soft strings, light shaker and gentle birdsong. Open, breezy and happy, unhurried. Fully instrumental, no vocals. Even dynamics, no builds and no sudden hits, ending the way it began so it can loop. About 2 minutes long.", + + "funfair": "A cheerful fairground instrumental for a children's game set at a funfair, playing softly beneath the action. A light steam organ and glockenspiel melody over a bouncy tuba, a soft accordion and a brushed snare, with a gentle 3/4 lilt like a slow carousel. Warm, playful and sunny, never frantic, never circus-loud. Fully instrumental, no vocals, no crowd noise, no sound effects. Even dynamics throughout, no builds and no sudden hits, ending the way it began so it can loop. About 2 minutes long." } diff --git a/tools/bake_scene.py b/tools/bake_scene.py index 13e4753..fd1e50e 100644 --- a/tools/bake_scene.py +++ b/tools/bake_scene.py @@ -147,6 +147,25 @@ # an aerial, a wheel and a shadow arrive as separate pieces of one drawing. DIFF_JOIN = 0.003 +# How far, in pixels, a fitting may have moved between the plate and the +# picture and still be the same fitting. The model nudges a bench or a ride a +# few pixels while it draws, and a nudged bench is a solid patch of difference +# that touches the ice cream standing on it. But a nudged bench is still in the +# plate, that far over; a new ice cream is not, at any shift. So a pixel counts +# as drawn only when no patch of the plate this close to it matches. +SHIFT = 6 + +# Side of the patch compared at each shift, so a find is not mistaken for +# scenery because one of its pixels happens to match one of the plate's nearby. +MATCH = 5 + +# Widest line, in pixels, that is a redrawn outline rather than a drawing. A +# crowded plate comes back with every figure's pen a pixel to one side, and +# those hairlines, joined across DIFF_JOIN, would rope the finds into one +# tangle that no box can point at. Lines this wide or narrower are dropped +# before anything is joined; a find is solid and survives. +HAIRLINE = 1 + # How much smaller the picture is made before its blobs are counted. LABEL_SCALE = 4 @@ -227,6 +246,99 @@ def locate(art, props, cache, relocate=False): return found +# Contact sheet of the changed patches: how big each crop is drawn, and how +# many go across. The number above each crop is what the model answers with. +SHEET_CELL = 200 +SHEET_COLUMNS = 6 +SHEET_LABEL = 26 + + +def label_blobs(image, props, drawn_in, cache, relocate=False): + """Ask what each changed patch is, rather than where each find is. + + With a plate the finds are already cut out - they are the patches that + changed - so the only question left is which find each patch is. That is a + far easier question than finding a duck in a crowd: the crop is handed over + on its own, at its own size, and the answer is one id or "none". It is also + the question a crowded picture forces, because a box aimed at a fairground + from memory of the whole picture lands a stall to the left. + + The answer is written in the same shape `locate` writes - a box per + sighting - so the rest of the bake and a hand correction read either. + """ + if cache.exists() and not relocate: + return json.loads(cache.read_text()) + width, height = image.size + boxes = [] + for blob in drawn_in: + rows, cols = np.nonzero(blob) + boxes.append((int(cols.min()), int(rows.min()), + int(cols.max()) + 1, int(rows.max()) + 1)) + + from PIL import ImageDraw, ImageFont + font = ImageFont.load_default(size=SHEET_LABEL) + rows_needed = (len(boxes) + SHEET_COLUMNS - 1) // SHEET_COLUMNS + cell = SHEET_CELL + SHEET_LABEL + 8 + sheet = Image.new( + "RGB", (SHEET_COLUMNS * SHEET_CELL, rows_needed * cell), "white" + ) + draw = ImageDraw.Draw(sheet) + for index, (c0, r0, c1, r1) in enumerate(boxes): + # Room around the patch, so a duck is a duck on a saucer rather than + # a yellow shape, and never less than a hand's width. + side = max(c1 - c0, r1 - r0) + pad = max(24, side // 3) + crop = image.crop(( + max(0, c0 - pad), max(0, r0 - pad), + min(width, c1 + pad), min(height, r1 + pad), + )) + crop.thumbnail((SHEET_CELL, SHEET_CELL), Image.LANCZOS) + x = (index % SHEET_COLUMNS) * SHEET_CELL + y = (index // SHEET_COLUMNS) * cell + draw.text((x + 6, y + 2), str(index + 1), fill="red", font=font) + sheet.paste(crop, (x + (SHEET_CELL - crop.width) // 2, + y + SHEET_LABEL + 6)) + sheet_path = cache.with_suffix("").with_suffix(".sheet.png") + sheet.save(sheet_path) + + listing = "\n".join( + f"- {prop['id']}: {prop.get('shape') or prop['label']}" + for prop in props + ) + where = sheet_path.relative_to(ROOT) + prompt = f"""Read the image at {where}. + +It is a contact sheet of {len(boxes)} numbered crops cut from a cartoon hidden +object picture. Each crop is centred on one patch the illustrator added to the +picture. Most of the patches are one of these {len(props)} things, drawn small +in the picture's own style: +{listing} + +The rest are bits of scenery the illustrator touched up while drawing - part +of a person, a fence, a bench, a stall, a ride - and are "none". + +For every number, say which thing its crop is centred on, or "none". Reply with +only a JSON object mapping each number, as a string, to one id or "none": + +{{"1": "teddy_bear", "2": "none", "3": "rubber_duck"}} + +The same thing may be drawn more than once, so an id may appear for several +numbers. Judge by the patch in the middle of the crop, not by what is around +it. Be strict: a crop with no such thing in the middle is "none".""" + answer = claude_json.ask_json(prompt, model="sonnet") + found = {prop["id"]: [] for prop in props} + for index, (c0, r0, c1, r1) in enumerate(boxes): + label = answer.get(str(index + 1)) or answer.get(index + 1) + if label in found: + found[label].append({ + "box": [round(c0 / width, 4), round(r0 / height, 4), + round(c1 / width, 4), round(r1 / height, 4)], + "note": f"patch {index + 1} of {where.name}", + }) + cache.write_text(json.dumps(found, indent=2) + "\n") + return found + + def _area(box, shape): """Pixel area of a normalized box.""" height, width = shape @@ -390,6 +502,11 @@ def _closed(mask, radius): return ~_grown(~_grown(mask, radius), radius) +def _opened(mask, radius): + """[mask] shrunk by [radius] and grown back, which drops hairlines.""" + return _grown(~_grown(~mask, radius), radius) + + def _filled(mask): """[mask] with its enclosed holes filled in.""" outside = _flood_border(~mask) @@ -554,17 +671,18 @@ def blobs(plate, art): before = np.asarray(plate, dtype=np.int16) after = np.asarray(art, dtype=np.int16) amount = np.abs(after - before).max(axis=2) - changed = amount > DIFF_STEP + # Changed, and not a fitting that moved: see [SHIFT]. + changed = (amount > DIFF_STEP) & (_novelty(before, after) > DIFF_STEP) # Kept for the stamps: how far each pixel moved, not just whether it did, # which is what lets a find's shadow fade out instead of ending on a line. blobs.amount = amount blobs.changed = changed height, width = changed.shape - # Joined before they are counted: one drawing arrives as several patches - - # a body, an aerial, the shadow under it - and each of them alone is a - # speck. + # Hairlines out first, then joined before they are counted: one drawing + # arrives as several patches - a body, an aerial, the shadow under it - + # and each of them alone is a speck. join = max(2, int(DIFF_JOIN * width)) - joined = _closed(changed, join) + joined = _closed(_opened(changed, HAIRLINE), join) # Counted small and cut out full size. A find is hundreds of pixels across, # so which pixels belong together is a question a quarter-size copy answers @@ -587,6 +705,42 @@ def blobs(plate, art): return found +def _novelty(before, after): + """How far each pixel of [after] is from the nearest patch of [before]. + + The plate is slid up to [SHIFT] pixels each way and compared to the + picture over [MATCH]-wide patches; what is kept is the least difference + any shift found. A fitting the model nudged reads as its own colour a few + pixels over and comes out near zero; a find drawn where there was grass + matches nothing and stays far. + """ + height, width = after.shape[:2] + best = None + for dy in range(-SHIFT, SHIFT + 1): + for dx in range(-SHIFT, SHIFT + 1): + moved = np.roll(before, (dy, dx), axis=(0, 1)) + diff = np.abs(after - moved).max(axis=2) + blurred = _mean(diff, MATCH) + best = blurred if best is None else np.minimum(best, blurred) + return best + + +def _mean(values, side): + """[values] averaged over a [side]-wide square around each pixel.""" + pad = side // 2 + padded = np.pad(values.astype(np.float32), pad, mode="edge") + summed = padded.cumsum(axis=0).cumsum(axis=1) + summed = np.pad(summed, ((1, 0), (1, 0))) + height, width = values.shape + total = ( + summed[side:side + height, side:side + width] + - summed[:height, side:side + width] + - summed[side:side + height, :width] + + summed[:height, :width] + ) + return total / (side * side) + + def _padded(box, slack=0.3): """[box] with room around it, in normalized coordinates.""" pad_x = (box[2] - box[0]) * slack @@ -746,8 +900,11 @@ def read(scene_id, variant, art, relocate, plate=None, take=None): f"{scene_id}{'.' + variant if variant else ''}" f"{'.' + str(take) if take else ''}.baked.json" ) - sightings = locate(art, props, cache, relocate=relocate) drawn_in = blobs(clean, image) if clean is not None else [] + if drawn_in: + sightings = label_blobs(image, props, drawn_in, cache, relocate=relocate) + else: + sightings = locate(art, props, cache, relocate=relocate) taken = set() objects = [] diff --git a/tools/scenes/funfair.1.baked.json b/tools/scenes/funfair.1.baked.json new file mode 100644 index 0000000..6e1fa4c --- /dev/null +++ b/tools/scenes/funfair.1.baked.json @@ -0,0 +1,161 @@ +{ + "teddy_bear": [ + { + "box": [ + 0.2175, + 0.6646, + 0.2579, + 0.7355 + ], + "note": "patch 13 of funfair.1.sheet.png" + } + ], + "cotton_candy": [ + { + "box": [ + 0.0296, + 0.6596, + 0.07, + 0.7377 + ], + "note": "patch 14 of funfair.1.sheet.png" + } + ], + "popcorn": [ + { + "box": [ + 0.7417, + 0.4838, + 0.7754, + 0.5441 + ], + "note": "patch 8 of funfair.1.sheet.png" + } + ], + "ice_cream": [ + { + "box": [ + 0.8333, + 0.2282, + 0.905, + 0.3069 + ], + "note": "by hand: the cone on the bench by the teacups, drawn with its own bench" + } + ], + "goldfish_bag": [ + { + "box": [ + 0.5979, + 0.6674, + 0.6208, + 0.7165 + ], + "note": "patch 12 of funfair.1.sheet.png" + } + ], + "rubber_duck": [ + { + "box": [ + 0.8704, + 0.1853, + 0.9, + 0.2204 + ], + "note": "patch 4 of funfair.1.sheet.png" + }, + { + "box": [ + 0.7558, + 0.2009, + 0.7863, + 0.2383 + ], + "note": "patch 5 of funfair.1.sheet.png" + } + ], + "blue_balloon": [ + { + "box": [ + 0.2083, + 0.3722, + 0.2367, + 0.442 + ], + "note": "patch 7 of funfair.1.sheet.png" + } + ], + "grape_lollipop": [ + { + "box": [ + 0.1883, + 0.0837, + 0.2092, + 0.1306 + ], + "note": "patch 1 of funfair.1.sheet.png" + }, + { + "box": [ + 0.9321, + 0.0887, + 0.9529, + 0.1317 + ], + "note": "patch 2 of funfair.1.sheet.png" + } + ], + "pinwheel": [ + { + "box": [ + 0.8104, + 0.8817, + 0.8488, + 0.9537 + ], + "note": "patch 15 of funfair.1.sheet.png" + }, + { + "box": [ + 0.2387, + 0.909, + 0.2692, + 0.9771 + ], + "note": "patch 16 of funfair.1.sheet.png" + } + ], + "kite": [ + { + "box": [ + 0.5933, + 0.5965, + 0.6375, + 0.6607 + ], + "note": "patch 10 of funfair.1.sheet.png" + } + ], + "top_hat": [ + { + "box": [ + 0.0917, + 0.1869, + 0.1208, + 0.2199 + ], + "note": "patch 3 of funfair.1.sheet.png" + } + ], + "silver_whistle": [ + { + "box": [ + 0.8654, + 0.6205, + 0.9242, + 0.6473 + ], + "note": "patch 9 of funfair.1.sheet.png" + } + ] +} diff --git a/tools/scenes/funfair.2.baked.json b/tools/scenes/funfair.2.baked.json new file mode 100644 index 0000000..e7022f7 --- /dev/null +++ b/tools/scenes/funfair.2.baked.json @@ -0,0 +1,161 @@ +{ + "teddy_bear": [ + { + "box": [ + 0.3, + 0.4621, + 0.4054, + 0.5558 + ], + "note": "patch 7 of funfair.2.sheet.png" + } + ], + "cotton_candy": [ + { + "box": [ + 0.1208, + 0.5619, + 0.1638, + 0.6434 + ], + "note": "patch 9 of funfair.2.sheet.png" + }, + { + "box": [ + 0.1608, + 0.6747, + 0.1929, + 0.7388 + ], + "note": "patch 12 of funfair.2.sheet.png" + } + ], + "popcorn": [ + { + "box": [ + 0.5804, + 0.5798, + 0.6162, + 0.6423 + ], + "note": "patch 8 of funfair.2.sheet.png" + } + ], + "ice_cream": [ + { + "box": [ + 0.2896, + 0.8622, + 0.3117, + 0.8973 + ], + "note": "patch 13 of funfair.2.sheet.png" + } + ], + "goldfish_bag": [ + { + "box": [ + 0.1471, + 0.135, + 0.1783, + 0.1864 + ], + "note": "patch 2 of funfair.2.sheet.png" + } + ], + "rubber_duck": [ + { + "box": [ + 0.9508, + 0.1763, + 0.9842, + 0.2182 + ], + "note": "patch 3 of funfair.2.sheet.png" + }, + { + "box": [ + 0.6512, + 0.6551, + 0.6858, + 0.7015 + ], + "note": "patch 10 of funfair.2.sheet.png" + } + ], + "blue_balloon": [ + { + "box": [ + 0.6904, + 0.385, + 0.72, + 0.4587 + ], + "note": "patch 6 of funfair.2.sheet.png" + } + ], + "grape_lollipop": [ + { + "box": [ + 0.8492, + 0.6842, + 0.8708, + 0.7316 + ], + "note": "patch 11 of funfair.2.sheet.png" + }, + { + "box": [ + 0.7388, + 0.8756, + 0.7604, + 0.9102 + ], + "note": "patch 15 of funfair.2.sheet.png" + } + ], + "pinwheel": [ + { + "box": [ + 0.09, + 0.1802, + 0.1212, + 0.2706 + ], + "note": "patch 4 of funfair.2.sheet.png" + } + ], + "kite": [ + { + "box": [ + 0.8433, + 0.1931, + 0.9046, + 0.3253 + ], + "note": "patch 5 of funfair.2.sheet.png" + } + ], + "top_hat": [ + { + "box": [ + 0.1212, + 0.8605, + 0.1625, + 0.9023 + ], + "note": "patch 14 of funfair.2.sheet.png" + } + ], + "silver_whistle": [ + { + "box": [ + 0.6954, + 0.0452, + 0.7296, + 0.1105 + ], + "note": "patch 1 of funfair.2.sheet.png" + } + ] +} diff --git a/tools/scenes/funfair.3.baked.json b/tools/scenes/funfair.3.baked.json new file mode 100644 index 0000000..419c172 --- /dev/null +++ b/tools/scenes/funfair.3.baked.json @@ -0,0 +1,179 @@ +{ + "teddy_bear": [ + { + "box": [ + 0.225, + 0.1384, + 0.2696, + 0.2015 + ], + "note": "patch 1 of funfair.3.sheet.png" + }, + { + "box": [ + 0.1138, + 0.5625, + 0.1588, + 0.639 + ], + "note": "patch 11 of funfair.3.sheet.png" + } + ], + "cotton_candy": [ + { + "box": [ + 0.1363, + 0.3259, + 0.1725, + 0.4035 + ], + "note": "patch 5 of funfair.3.sheet.png" + } + ], + "popcorn": [ + { + "box": [ + 0.0158, + 0.404, + 0.0433, + 0.4531 + ], + "note": "patch 6 of funfair.3.sheet.png" + }, + { + "box": [ + 0.3875, + 0.8627, + 0.4158, + 0.9213 + ], + "note": "patch 17 of funfair.3.sheet.png" + } + ], + "ice_cream": [ + { + "box": [ + 0.2429, + 0.5586, + 0.2879, + 0.644 + ], + "note": "patch 12 of funfair.3.sheet.png" + } + ], + "goldfish_bag": [ + { + "box": [ + 0.3342, + 0.6741, + 0.3638, + 0.7305 + ], + "note": "patch 15 of funfair.3.sheet.png" + } + ], + "rubber_duck": [ + { + "box": [ + 0.9467, + 0.1724, + 0.9817, + 0.2193 + ], + "note": "patch 2 of funfair.3.sheet.png" + }, + { + "box": [ + 0.7488, + 0.1814, + 0.7896, + 0.236 + ], + "note": "patch 3 of funfair.3.sheet.png" + }, + { + "box": [ + 0.9592, + 0.6964, + 0.9917, + 0.7383 + ], + "note": "patch 16 of funfair.3.sheet.png" + } + ], + "blue_balloon": [ + { + "box": [ + 0.6883, + 0.3783, + 0.7196, + 0.4587 + ], + "note": "patch 7 of funfair.3.sheet.png" + } + ], + "grape_lollipop": [ + { + "box": [ + 0.0842, + 0.2048, + 0.1117, + 0.2768 + ], + "note": "patch 4 of funfair.3.sheet.png" + }, + { + "box": [ + 0.2146, + 0.4498, + 0.2442, + 0.5301 + ], + "note": "patch 9 of funfair.3.sheet.png" + } + ], + "pinwheel": [ + { + "box": [ + 0.46, + 0.452, + 0.4979, + 0.5246 + ], + "note": "patch 8 of funfair.3.sheet.png" + } + ], + "kite": [ + { + "box": [ + 0.575, + 0.5887, + 0.6421, + 0.6635 + ], + "note": "patch 14 of funfair.3.sheet.png" + } + ], + "top_hat": [ + { + "box": [ + 0.7542, + 0.5173, + 0.7863, + 0.5541 + ], + "note": "patch 10 of funfair.3.sheet.png" + } + ], + "silver_whistle": [ + { + "box": [ + 0.8646, + 0.5982, + 0.9367, + 0.6557 + ], + "note": "patch 13 of funfair.3.sheet.png" + } + ] +} diff --git a/tools/scenes/funfair.4.baked.json b/tools/scenes/funfair.4.baked.json new file mode 100644 index 0000000..415f5f0 --- /dev/null +++ b/tools/scenes/funfair.4.baked.json @@ -0,0 +1,188 @@ +{ + "teddy_bear": [ + { + "box": [ + 0.0883, + 0.1579, + 0.1279, + 0.2271 + ], + "note": "patch 4 of funfair.4.sheet.png" + } + ], + "cotton_candy": [ + { + "box": [ + 0.5371, + 0.5681, + 0.5704, + 0.6311 + ], + "note": "patch 13 of funfair.4.sheet.png" + }, + { + "box": [ + 0.6292, + 0.6445, + 0.6633, + 0.7093 + ], + "note": "patch 17 of funfair.4.sheet.png" + } + ], + "popcorn": [ + { + "box": [ + 0.8662, + 0.1568, + 0.9029, + 0.2204 + ], + "note": "patch 3 of funfair.4.sheet.png" + } + ], + "ice_cream": [ + { + "box": [ + 0.7258, + 0.4693, + 0.7533, + 0.5268 + ], + "note": "patch 11 of funfair.4.sheet.png" + } + ], + "goldfish_bag": [ + { + "box": [ + 0.6071, + 0.1842, + 0.6383, + 0.2366 + ], + "note": "patch 5 of funfair.4.sheet.png" + }, + { + "box": [ + 0.43, + 0.4771, + 0.4662, + 0.5379 + ], + "note": "patch 12 of funfair.4.sheet.png" + } + ], + "rubber_duck": [ + { + "box": [ + 0.7554, + 0.1959, + 0.7858, + 0.2383 + ], + "note": "patch 6 of funfair.4.sheet.png" + }, + { + "box": [ + 0.0183, + 0.4141, + 0.0467, + 0.4515 + ], + "note": "patch 10 of funfair.4.sheet.png" + }, + { + "box": [ + 0.8533, + 0.6908, + 0.875, + 0.7388 + ], + "note": "patch 19 of funfair.4.sheet.png" + } + ], + "blue_balloon": [ + { + "box": [ + 0.0242, + 0.5742, + 0.0596, + 0.6395 + ], + "note": "patch 15 of funfair.4.sheet.png" + } + ], + "grape_lollipop": [ + { + "box": [ + 0.9567, + 0.1624, + 0.9804, + 0.216 + ], + "note": "patch 2 of funfair.4.sheet.png" + }, + { + "box": [ + 0.1, + 0.2221, + 0.1504, + 0.308 + ], + "note": "patch 7 of funfair.4.sheet.png" + } + ], + "pinwheel": [ + { + "box": [ + 0.1746, + 0.8242, + 0.2133, + 0.9202 + ], + "note": "patch 21 of funfair.4.sheet.png" + } + ], + "kite": [ + { + "box": [ + 0.655, + 0.2333, + 0.7079, + 0.3259 + ], + "note": "patch 8 of funfair.4.sheet.png" + } + ], + "top_hat": [ + { + "box": [ + 0.7879, + 0.5865, + 0.8283, + 0.6311 + ], + "note": "patch 14 of funfair.4.sheet.png" + }, + { + "box": [ + 0.375, + 0.8158, + 0.4088, + 0.8527 + ], + "note": "patch 20 of funfair.4.sheet.png" + } + ], + "silver_whistle": [ + { + "box": [ + 0.8683, + 0.611, + 0.9275, + 0.6484 + ], + "note": "patch 16 of funfair.4.sheet.png" + } + ] +} diff --git a/tools/scenes/funfair.build.json b/tools/scenes/funfair.build.json new file mode 100644 index 0000000..28bbf36 --- /dev/null +++ b/tools/scenes/funfair.build.json @@ -0,0 +1,105 @@ +{ + "sceneId": "funfair", + "name": "Funfair", + "sceneSize": { + "w": 2400, + "h": 1792 + }, + "levelDir": "assets/levels/funfair", + "background": { + "source": "rawimages/funfair/plate_look.jpeg", + "maxWidth": 2400, + "quality": 86 + }, + "sheets": [ + { + "source": "rawimages/funfair/sheet_1.jpeg", + "cols": 3, + "rows": 2, + "names": [ + "teddy_bear", + "cotton_candy", + "popcorn", + "ice_cream", + "goldfish_bag", + "rubber_duck" + ] + }, + { + "source": "rawimages/funfair/sheet_2.jpeg", + "cols": 3, + "rows": 2, + "names": [ + "blue_balloon", + "grape_lollipop", + "pinwheel", + "kite", + "top_hat", + "silver_whistle" + ] + } + ], + "props": [ + { + "id": "teddy_bear", + "label": "Teddy Bear", + "shape": "brown plush bear sitting up facing front, round ears, would rest on a surface" + }, + { + "id": "cotton_candy", + "label": "Cotton Candy", + "shape": "pink fluffy cloud of candy floss on a paper stick, taller than wide, stands in a holder or leans" + }, + { + "id": "popcorn", + "label": "Popcorn", + "shape": "red and yellow vertically striped box overflowing with yellow popcorn, would rest on a surface" + }, + { + "id": "ice_cream", + "label": "Ice Cream", + "shape": "single mint green scoop in a tan waffle cone, taller than wide, stands upright or leans" + }, + { + "id": "goldfish_bag", + "label": "Goldfish", + "shape": "small clear bag tied at the top holding pale blue water and one orange goldfish, would rest on a surface" + }, + { + "id": "rubber_duck", + "label": "Rubber Duck", + "shape": "yellow rubber duck with an orange beak seen side on, would rest on a surface" + }, + { + "id": "blue_balloon", + "label": "Balloon", + "shape": "single round blue balloon on a brown string, floats or is tied to something" + }, + { + "id": "grape_lollipop", + "label": "Lollipop", + "shape": "purple and lilac swirl lollipop disc on a stick, leans or lies flat" + }, + { + "id": "pinwheel", + "label": "Pinwheel", + "shape": "rainbow striped toy pinwheel on a stick, leans or is stuck into something" + }, + { + "id": "kite", + "label": "Kite", + "shape": "teal diamond shaped kite with a short tail of bows, leans or hangs" + }, + { + "id": "top_hat", + "label": "Top Hat", + "shape": "black top hat with a red band, would rest on a surface" + }, + { + "id": "silver_whistle", + "label": "Whistle", + "shape": "silver grey whistle on a short cord, small, would rest on a surface or hang" + } + ], + "objectCount": 12 +} diff --git a/tools/scenes/funfair.dense.1.baked.json b/tools/scenes/funfair.dense.1.baked.json new file mode 100644 index 0000000..2ea2184 --- /dev/null +++ b/tools/scenes/funfair.dense.1.baked.json @@ -0,0 +1,251 @@ +{ + "teddy_bear": [ + { + "box": [ + 0.5567, + 0.0742, + 0.5846, + 0.135 + ], + "note": "patch 1 of funfair.dense.1.sheet.png" + }, + { + "box": [ + 0.2471, + 0.3237, + 0.2867, + 0.3806 + ], + "note": "patch 9 of funfair.dense.1.sheet.png" + } + ], + "cotton_candy": [ + { + "box": [ + 0.5075, + 0.1669, + 0.5621, + 0.2081 + ], + "note": "patch 3 of funfair.dense.1.sheet.png" + } + ], + "popcorn": [ + { + "box": [ + 0.3588, + 0.279, + 0.3921, + 0.3359 + ], + "note": "patch 8 of funfair.dense.1.sheet.png" + } + ], + "ice_cream": [ + { + "box": [ + 0.9496, + 0.1311, + 0.9692, + 0.1735 + ], + "note": "patch 2 of funfair.dense.1.sheet.png" + }, + { + "box": [ + 0.57, + 0.2729, + 0.5946, + 0.3326 + ], + "note": "patch 6 of funfair.dense.1.sheet.png" + }, + { + "box": [ + 0.4813, + 0.6083, + 0.5133, + 0.6501 + ], + "note": "patch 18 of funfair.dense.1.sheet.png" + }, + { + "box": [ + 0.5008, + 0.6451, + 0.5292, + 0.6763 + ], + "note": "patch 19 of funfair.dense.1.sheet.png" + }, + { + "box": [ + 0.8379, + 0.6562, + 0.8583, + 0.7109 + ], + "note": "patch 20 of funfair.dense.1.sheet.png" + } + ], + "goldfish_bag": [ + { + "box": [ + 0.2017, + 0.6579, + 0.2429, + 0.7271 + ], + "note": "patch 21 of funfair.dense.1.sheet.png" + } + ], + "rubber_duck": [ + { + "box": [ + 0.55, + 0.4766, + 0.5825, + 0.5223 + ], + "note": "patch 12 of funfair.dense.1.sheet.png" + }, + { + "box": [ + 0.2, + 0.4833, + 0.2483, + 0.5246 + ], + "note": "patch 13 of funfair.dense.1.sheet.png" + }, + { + "box": [ + 0.445, + 0.9096, + 0.4767, + 0.9531 + ], + "note": "patch 25 of funfair.dense.1.sheet.png" + } + ], + "blue_balloon": [ + { + "box": [ + 0.9654, + 0.2372, + 0.9938, + 0.3348 + ], + "note": "patch 7 of funfair.dense.1.sheet.png" + }, + { + "box": [ + 0.2525, + 0.7896, + 0.2808, + 0.8644 + ], + "note": "patch 23 of funfair.dense.1.sheet.png" + } + ], + "grape_lollipop": [ + { + "box": [ + 0.5642, + 0.3767, + 0.5917, + 0.4431 + ], + "note": "patch 10 of funfair.dense.1.sheet.png" + } + ], + "pinwheel": [ + { + "box": [ + 0.3833, + 0.1579, + 0.4179, + 0.2154 + ], + "note": "patch 4 of funfair.dense.1.sheet.png" + }, + { + "box": [ + 0.4896, + 0.457, + 0.5183, + 0.5084 + ], + "note": "patch 11 of funfair.dense.1.sheet.png" + }, + { + "box": [ + 0.6354, + 0.4308, + 0.6704, + 0.5262 + ], + "note": "patch 14 of funfair.dense.1.sheet.png" + } + ], + "kite": [ + { + "box": [ + 0.725, + 0.2165, + 0.7758, + 0.317 + ], + "note": "patch 5 of funfair.dense.1.sheet.png" + }, + { + "box": [ + 0.3167, + 0.8365, + 0.3638, + 0.9347 + ], + "note": "patch 24 of funfair.dense.1.sheet.png" + } + ], + "top_hat": [ + { + "box": [ + 0.6062, + 0.5268, + 0.6454, + 0.5709 + ], + "note": "patch 15 of funfair.dense.1.sheet.png" + } + ], + "silver_whistle": [ + { + "box": [ + 0.8113, + 0.5781, + 0.8375, + 0.6496 + ], + "note": "patch 17 of funfair.dense.1.sheet.png" + }, + { + "box": [ + 0.915, + 0.6987, + 0.9508, + 0.7344 + ], + "note": "patch 22 of funfair.dense.1.sheet.png" + }, + { + "box": [ + 0.8242, + 0.9542, + 0.8825, + 0.9872 + ], + "note": "patch 26 of funfair.dense.1.sheet.png" + } + ] +} diff --git a/tools/scenes/funfair.dense.2.baked.json b/tools/scenes/funfair.dense.2.baked.json new file mode 100644 index 0000000..4e246d2 --- /dev/null +++ b/tools/scenes/funfair.dense.2.baked.json @@ -0,0 +1,224 @@ +{ + "teddy_bear": [ + { + "box": [ + 0.3479, + 0.048, + 0.3833, + 0.1027 + ], + "note": "patch 1 of funfair.dense.2.sheet.png" + } + ], + "cotton_candy": [ + { + "box": [ + 0.3054, + 0.2176, + 0.3333, + 0.2656 + ], + "note": "patch 6 of funfair.dense.2.sheet.png" + } + ], + "popcorn": [ + { + "box": [ + 0.3829, + 0.1306, + 0.4121, + 0.1825 + ], + "note": "patch 4 of funfair.dense.2.sheet.png" + } + ], + "ice_cream": [ + { + "box": [ + 0.1842, + 0.6629, + 0.215, + 0.7238 + ], + "note": "patch 17 of funfair.dense.2.sheet.png" + }, + { + "box": [ + 0.8654, + 0.6908, + 0.9071, + 0.7282 + ], + "note": "patch 18 of funfair.dense.2.sheet.png" + } + ], + "goldfish_bag": [ + { + "box": [ + 0.1829, + 0.3962, + 0.2154, + 0.4475 + ], + "note": "patch 12 of funfair.dense.2.sheet.png" + } + ], + "rubber_duck": [ + { + "box": [ + 0.7242, + 0.3253, + 0.7558, + 0.3666 + ], + "note": "patch 8 of funfair.dense.2.sheet.png" + }, + { + "box": [ + 0.9421, + 0.5954, + 0.9613, + 0.6345 + ], + "note": "patch 16 of funfair.dense.2.sheet.png" + } + ], + "blue_balloon": [ + { + "box": [ + 0.6946, + 0.0474, + 0.7246, + 0.1049 + ], + "note": "patch 2 of funfair.dense.2.sheet.png" + }, + { + "box": [ + 0.0125, + 0.2946, + 0.0429, + 0.4018 + ], + "note": "patch 10 of funfair.dense.2.sheet.png" + } + ], + "grape_lollipop": [ + { + "box": [ + 0.2992, + 0.1222, + 0.32, + 0.1769 + ], + "note": "patch 3 of funfair.dense.2.sheet.png" + }, + { + "box": [ + 0.5425, + 0.3387, + 0.5667, + 0.3867 + ], + "note": "patch 9 of funfair.dense.2.sheet.png" + } + ], + "pinwheel": [ + { + "box": [ + 0.5625, + 0.3772, + 0.5971, + 0.442 + ], + "note": "patch 11 of funfair.dense.2.sheet.png" + }, + { + "box": [ + 0.4808, + 0.4436, + 0.5125, + 0.5039 + ], + "note": "patch 14 of funfair.dense.2.sheet.png" + }, + { + "box": [ + 0.0025, + 0.8577, + 0.0413, + 0.9152 + ], + "note": "patch 22 of funfair.dense.2.sheet.png" + } + ], + "kite": [ + { + "box": [ + 0.8783, + 0.4124, + 0.9271, + 0.4922 + ], + "note": "patch 13 of funfair.dense.2.sheet.png" + }, + { + "box": [ + 0.3121, + 0.8292, + 0.3667, + 0.9537 + ], + "note": "patch 23 of funfair.dense.2.sheet.png" + } + ], + "top_hat": [ + { + "box": [ + 0.3592, + 0.2997, + 0.3921, + 0.3376 + ], + "note": "patch 7 of funfair.dense.2.sheet.png" + } + ], + "silver_whistle": [ + { + "box": [ + 0.5108, + 0.183, + 0.5579, + 0.2081 + ], + "note": "patch 5 of funfair.dense.2.sheet.png" + }, + { + "box": [ + 0.6271, + 0.5497, + 0.675, + 0.5765 + ], + "note": "patch 15 of funfair.dense.2.sheet.png" + }, + { + "box": [ + 0.6833, + 0.7679, + 0.7438, + 0.803 + ], + "note": "patch 19 of funfair.dense.2.sheet.png" + }, + { + "box": [ + 0.485, + 0.8136, + 0.5146, + 0.841 + ], + "note": "patch 20 of funfair.dense.2.sheet.png" + } + ] +} diff --git a/tools/scenes/funfair.dense.3.baked.json b/tools/scenes/funfair.dense.3.baked.json new file mode 100644 index 0000000..85e237d --- /dev/null +++ b/tools/scenes/funfair.dense.3.baked.json @@ -0,0 +1,224 @@ +{ + "teddy_bear": [ + { + "box": [ + 0.2954, + 0.1574, + 0.33, + 0.1791 + ], + "note": "patch 3 of funfair.dense.3.sheet.png" + }, + { + "box": [ + 0.9108, + 0.1925, + 0.9471, + 0.2299 + ], + "note": "patch 5 of funfair.dense.3.sheet.png" + } + ], + "cotton_candy": [ + { + "box": [ + 0.3117, + 0.2188, + 0.34, + 0.2723 + ], + "note": "patch 7 of funfair.dense.3.sheet.png" + } + ], + "popcorn": [ + { + "box": [ + 0.5521, + 0.0798, + 0.5771, + 0.1244 + ], + "note": "patch 1 of funfair.dense.3.sheet.png" + }, + { + "box": [ + 0.4925, + 0.4554, + 0.5183, + 0.5056 + ], + "note": "patch 13 of funfair.dense.3.sheet.png" + } + ], + "ice_cream": [ + { + "box": [ + 0.4542, + 0.1166, + 0.4767, + 0.1708 + ], + "note": "patch 2 of funfair.dense.3.sheet.png" + }, + { + "box": [ + 0.5513, + 0.5965, + 0.5696, + 0.6417 + ], + "note": "patch 16 of funfair.dense.3.sheet.png" + } + ], + "goldfish_bag": [ + { + "box": [ + 0.57, + 0.3549, + 0.6067, + 0.4163 + ], + "note": "patch 10 of funfair.dense.3.sheet.png" + } + ], + "rubber_duck": [ + { + "box": [ + 0.8683, + 0.6908, + 0.8917, + 0.7182 + ], + "note": "patch 19 of funfair.dense.3.sheet.png" + }, + { + "box": [ + 0.1833, + 0.6691, + 0.2296, + 0.7232 + ], + "note": "patch 20 of funfair.dense.3.sheet.png" + } + ], + "blue_balloon": [ + { + "box": [ + 0.6396, + 0.4414, + 0.6675, + 0.5223 + ], + "note": "patch 14 of funfair.dense.3.sheet.png" + }, + { + "box": [ + 0.7879, + 0.4459, + 0.8154, + 0.5435 + ], + "note": "patch 15 of funfair.dense.3.sheet.png" + } + ], + "grape_lollipop": [ + { + "box": [ + 0.6029, + 0.6211, + 0.6246, + 0.649 + ], + "note": "patch 17 of funfair.dense.3.sheet.png" + }, + { + "box": [ + 0.6817, + 0.6138, + 0.7054, + 0.673 + ], + "note": "patch 18 of funfair.dense.3.sheet.png" + } + ], + "pinwheel": [ + { + "box": [ + 0.7054, + 0.2115, + 0.7375, + 0.264 + ], + "note": "patch 6 of funfair.dense.3.sheet.png" + }, + { + "box": [ + 0.6846, + 0.3298, + 0.7142, + 0.3795 + ], + "note": "patch 9 of funfair.dense.3.sheet.png" + } + ], + "kite": [ + { + "box": [ + 0.4971, + 0.1635, + 0.5504, + 0.2165 + ], + "note": "patch 4 of funfair.dense.3.sheet.png" + }, + { + "box": [ + 0.4325, + 0.3521, + 0.4842, + 0.4526 + ], + "note": "patch 11 of funfair.dense.3.sheet.png" + }, + { + "box": [ + 0.8567, + 0.4118, + 0.9213, + 0.4911 + ], + "note": "patch 12 of funfair.dense.3.sheet.png" + } + ], + "top_hat": [ + { + "box": [ + 0.0292, + 0.8761, + 0.0696, + 0.9263 + ], + "note": "patch 22 of funfair.dense.3.sheet.png" + } + ], + "silver_whistle": [ + { + "box": [ + 0.3567, + 0.298, + 0.4092, + 0.3337 + ], + "note": "patch 8 of funfair.dense.3.sheet.png" + }, + { + "box": [ + 0.3308, + 0.8962, + 0.3713, + 0.933 + ], + "note": "patch 23 of funfair.dense.3.sheet.png" + } + ] +} diff --git a/tools/scenes/funfair.dense.4.baked.json b/tools/scenes/funfair.dense.4.baked.json new file mode 100644 index 0000000..d4577e7 --- /dev/null +++ b/tools/scenes/funfair.dense.4.baked.json @@ -0,0 +1,269 @@ +{ + "teddy_bear": [ + { + "box": [ + 0.5487, + 0.1038, + 0.5813, + 0.1596 + ], + "note": "patch 6 of funfair.dense.4.sheet.png" + }, + { + "box": [ + 0.6254, + 0.4554, + 0.66, + 0.5179 + ], + "note": "patch 16 of funfair.dense.4.sheet.png" + }, + { + "box": [ + 0.5483, + 0.5949, + 0.5683, + 0.6417 + ], + "note": "patch 20 of funfair.dense.4.sheet.png" + } + ], + "cotton_candy": [ + { + "box": [ + 0.35, + 0.2249, + 0.3738, + 0.2701 + ], + "note": "patch 9 of funfair.dense.4.sheet.png" + } + ], + "popcorn": [ + { + "box": [ + 0.4913, + 0.4559, + 0.5221, + 0.5078 + ], + "note": "patch 15 of funfair.dense.4.sheet.png" + } + ], + "ice_cream": [ + { + "box": [ + 0.5033, + 0.1641, + 0.5617, + 0.2081 + ], + "note": "patch 8 of funfair.dense.4.sheet.png" + }, + { + "box": [ + 0.6229, + 0.529, + 0.6746, + 0.5714 + ], + "note": "patch 17 of funfair.dense.4.sheet.png" + }, + { + "box": [ + 0.4879, + 0.5971, + 0.5054, + 0.6339 + ], + "note": "patch 19 of funfair.dense.4.sheet.png" + } + ], + "goldfish_bag": [ + { + "box": [ + 0.0225, + 0.8622, + 0.0625, + 0.9302 + ], + "note": "patch 27 of funfair.dense.4.sheet.png" + } + ], + "rubber_duck": [ + { + "box": [ + 0.2996, + 0.0843, + 0.325, + 0.1138 + ], + "note": "patch 5 of funfair.dense.4.sheet.png" + }, + { + "box": [ + 0.1283, + 0.4754, + 0.1483, + 0.5022 + ], + "note": "patch 14 of funfair.dense.4.sheet.png" + }, + { + "box": [ + 0.1692, + 0.5642, + 0.1917, + 0.5898 + ], + "note": "patch 18 of funfair.dense.4.sheet.png" + } + ], + "blue_balloon": [ + { + "box": [ + 0.9646, + 0.2444, + 0.9929, + 0.3125 + ], + "note": "patch 11 of funfair.dense.4.sheet.png" + }, + { + "box": [ + 0.7588, + 0.2405, + 0.7867, + 0.3337 + ], + "note": "patch 12 of funfair.dense.4.sheet.png" + } + ], + "grape_lollipop": [ + { + "box": [ + 0.3517, + 0.0647, + 0.375, + 0.106 + ], + "note": "patch 4 of funfair.dense.4.sheet.png" + }, + { + "box": [ + 0.3113, + 0.2366, + 0.3333, + 0.2723 + ], + "note": "patch 10 of funfair.dense.4.sheet.png" + }, + { + "box": [ + 0.2471, + 0.3856, + 0.2796, + 0.4727 + ], + "note": "patch 13 of funfair.dense.4.sheet.png" + }, + { + "box": [ + 0.6475, + 0.7958, + 0.6767, + 0.8594 + ], + "note": "patch 24 of funfair.dense.4.sheet.png" + }, + { + "box": [ + 0.7408, + 0.7958, + 0.7696, + 0.8594 + ], + "note": "patch 25 of funfair.dense.4.sheet.png" + } + ], + "pinwheel": [ + { + "box": [ + 0.4554, + 0.0346, + 0.4879, + 0.0871 + ], + "note": "patch 2 of funfair.dense.4.sheet.png" + }, + { + "box": [ + 0.8308, + 0.6133, + 0.8625, + 0.702 + ], + "note": "patch 21 of funfair.dense.4.sheet.png" + } + ], + "kite": [ + { + "box": [ + 0.8054, + 0.0268, + 0.845, + 0.1032 + ], + "note": "patch 3 of funfair.dense.4.sheet.png" + } + ], + "top_hat": [ + { + "box": [ + 0.5233, + 0.8365, + 0.5583, + 0.8901 + ], + "note": "patch 26 of funfair.dense.4.sheet.png" + } + ], + "silver_whistle": [ + { + "box": [ + 0.9233, + 0.0508, + 0.9571, + 0.0781 + ], + "note": "patch 1 of funfair.dense.4.sheet.png" + }, + { + "box": [ + 0.9358, + 0.1501, + 0.965, + 0.173 + ], + "note": "patch 7 of funfair.dense.4.sheet.png" + }, + { + "box": [ + 0.9233, + 0.7009, + 0.9546, + 0.7321 + ], + "note": "patch 22 of funfair.dense.4.sheet.png" + }, + { + "box": [ + 0.9233, + 0.7701, + 0.9575, + 0.7985 + ], + "note": "patch 23 of funfair.dense.4.sheet.png" + } + ] +} diff --git a/tools/scenes/funfair.dense.build.json b/tools/scenes/funfair.dense.build.json new file mode 100644 index 0000000..92a2d18 --- /dev/null +++ b/tools/scenes/funfair.dense.build.json @@ -0,0 +1,106 @@ +{ + "sceneId": "funfair", + "variant": "dense", + "name": "Funfair", + "sceneSize": { + "w": 2400, + "h": 1792 + }, + "levelDir": "assets/levels/funfair", + "background": { + "source": "rawimages/funfair/plate_hunt.jpeg", + "maxWidth": 2400, + "quality": 86 + }, + "sheets": [ + { + "source": "rawimages/funfair/sheet_1.jpeg", + "cols": 3, + "rows": 2, + "names": [ + "teddy_bear", + "cotton_candy", + "popcorn", + "ice_cream", + "goldfish_bag", + "rubber_duck" + ] + }, + { + "source": "rawimages/funfair/sheet_2.jpeg", + "cols": 3, + "rows": 2, + "names": [ + "blue_balloon", + "grape_lollipop", + "pinwheel", + "kite", + "top_hat", + "silver_whistle" + ] + } + ], + "props": [ + { + "id": "teddy_bear", + "label": "Teddy Bear", + "shape": "brown plush bear sitting up facing front, round ears, would rest on a surface" + }, + { + "id": "cotton_candy", + "label": "Cotton Candy", + "shape": "pink fluffy cloud of candy floss on a paper stick, taller than wide, stands in a holder or leans" + }, + { + "id": "popcorn", + "label": "Popcorn", + "shape": "red and yellow vertically striped box overflowing with yellow popcorn, would rest on a surface" + }, + { + "id": "ice_cream", + "label": "Ice Cream", + "shape": "single mint green scoop in a tan waffle cone, taller than wide, stands upright or leans" + }, + { + "id": "goldfish_bag", + "label": "Goldfish", + "shape": "small clear bag tied at the top holding pale blue water and one orange goldfish, would rest on a surface" + }, + { + "id": "rubber_duck", + "label": "Rubber Duck", + "shape": "yellow rubber duck with an orange beak seen side on, would rest on a surface" + }, + { + "id": "blue_balloon", + "label": "Balloon", + "shape": "single round blue balloon on a brown string, floats or is tied to something" + }, + { + "id": "grape_lollipop", + "label": "Lollipop", + "shape": "purple and lilac swirl lollipop disc on a stick, leans or lies flat" + }, + { + "id": "pinwheel", + "label": "Pinwheel", + "shape": "rainbow striped toy pinwheel on a stick, leans or is stuck into something" + }, + { + "id": "kite", + "label": "Kite", + "shape": "teal diamond shaped kite with a short tail of bows, leans or hangs" + }, + { + "id": "top_hat", + "label": "Top Hat", + "shape": "black top hat with a red band, would rest on a surface" + }, + { + "id": "silver_whistle", + "label": "Whistle", + "shape": "silver grey whistle on a short cord, small, would rest on a surface or hang" + } + ], + "objectCount": 12 +}