fertig-classic-games/data/superkart-artwork.json

60 lines
4.1 KiB
JSON

{
"_readme": [
"Drop-in artwork manifest for Super Kart. Entries with path:null render",
"procedurally (tinted kart silhouettes, painted terrain) until art is",
"supplied - set the path once the PNG exists and the game uses it with no",
"code changes. Loaded lazily on game entry via src/data/assetManifest.js.",
"",
"racerSheets - one spritesheet per racer, 18 frames of 64x64 in a single row",
" (1152x64 png). Frames 0..15 are the kart seen from 16 view angles:",
" frame 0 = viewed square from BEHIND, rotating CLOCKWISE (seen from above)",
" in 22.5-degree steps - frame 4 = kart's left side, frame 8 = head-on,",
" frame 12 = right side. Frames 16/17 are optional player-view lean frames",
" (16 = leaning left, 17 = leaning right); if the sheet is only 16 frames",
" wide the game reuses frame 0 with a tilt instead.",
" Transparent background, kart centered, wheels touching the frame bottom.",
"",
"themeSheets - one 8-frame sheet per location theme, 64x64 frames in a row",
" (512x64 png): frame order matches the theme's decor list in",
" data/superkart-rules.json (frame 0 = first decor sprite, etc.); trailing",
" frames are spare. Drawn perspective-scaled beside the track.",
"",
"backdrops - one wide horizon strip per theme, 1024x300 png, tiles",
" horizontally (left and right edges must match). Drawn above the horizon",
" and parallax-scrolled as the camera rotates. The bottom edge color should",
" blend toward the theme's fog color in superkart-rules.json.",
"",
"itemSheet - 48x48 frames in a single row, one frame per item in",
" data/superkart-rules.json items order (bolt, seeker, oil, turbo,",
" overdrive, emp, coins), then frame 7 = item box, frame 8 = coin."
],
"racerSheets": {
"mario": { "key": "superkart-kart-mario", "path": null, "frameWidth": 64, "frameHeight": 64, "angles": 16 },
"kona": { "key": "superkart-kart-kona", "path": null, "frameWidth": 64, "frameHeight": 64, "angles": 16 },
"fireball": { "key": "superkart-kart-fireball", "path": null, "frameWidth": 64, "frameHeight": 64, "angles": 16 },
"smasher": { "key": "superkart-kart-smasher", "path": null, "frameWidth": 64, "frameHeight": 64, "angles": 16 },
"croc": { "key": "superkart-kart-croc", "path": null, "frameWidth": 64, "frameHeight": 64, "angles": 16 },
"gerome": { "key": "superkart-kart-gerome", "path": null, "frameWidth": 64, "frameHeight": 64, "angles": 16 },
"blackwind": { "key": "superkart-kart-blackwind", "path": null, "frameWidth": 64, "frameHeight": 64, "angles": 16 },
"dv-8-2303": { "key": "superkart-kart-dv-8-2303", "path": null, "frameWidth": 64, "frameHeight": 64, "angles": 16 },
"zanthor": { "key": "superkart-kart-zanthor", "path": null, "frameWidth": 64, "frameHeight": 64, "angles": 16 }
},
"themeSheets": {
"beach": { "key": "superkart-theme-beach", "path": null, "frameWidth": 64, "frameHeight": 64 },
"volcano": { "key": "superkart-theme-volcano", "path": null, "frameWidth": 64, "frameHeight": 64 },
"scrapyard": { "key": "superkart-theme-scrapyard", "path": null, "frameWidth": 64, "frameHeight": 64 },
"swamp": { "key": "superkart-theme-swamp", "path": null, "frameWidth": 64, "frameHeight": 64 },
"speedway": { "key": "superkart-theme-speedway", "path": null, "frameWidth": 64, "frameHeight": 64 },
"nightcity": { "key": "superkart-theme-nightcity", "path": null, "frameWidth": 64, "frameHeight": 64 }
},
"backdrops": {
"beach": { "key": "superkart-backdrop-beach", "path": null },
"volcano": { "key": "superkart-backdrop-volcano", "path": null },
"scrapyard": { "key": "superkart-backdrop-scrapyard", "path": null },
"swamp": { "key": "superkart-backdrop-swamp", "path": null },
"speedway": { "key": "superkart-backdrop-speedway", "path": null },
"nightcity": { "key": "superkart-backdrop-nightcity", "path": null }
},
"itemSheet": { "key": "superkart-items", "path": null, "frameWidth": 48, "frameHeight": 48 }
}