Mercurial
comparison mrjunejune/src/public/dog-game.js @ 241:9c2eec61a152
[assets] Generate site images as WebP with Bazel
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Mon, 03 Aug 2026 11:26:30 -0700 |
| parents | c345083cd8a7 |
| children | 30c2196d03d4 |
comparison
equal
deleted
inserted
replaced
| 240:c345083cd8a7 | 241:9c2eec61a152 |
|---|---|
| 1 // Dog frames | 1 // Dog frames |
| 2 const imagesSrc = [ | 2 const imagesSrc = [ |
| 3 "/public/sprite_shiba0.png", | 3 "/public/sprite_shiba0.webp", |
| 4 "/public/sprite_shiba1.png", | 4 "/public/sprite_shiba1.webp", |
| 5 "/public/sprite_shiba2.png", | 5 "/public/sprite_shiba2.webp", |
| 6 "/public/sprite_shiba3.png", | 6 "/public/sprite_shiba3.webp", |
| 7 ]; | 7 ]; |
| 8 const images =imagesSrc.map((src, index) => { | 8 const images =imagesSrc.map((src, index) => { |
| 9 const img = new Image(); | 9 const img = new Image(); |
| 10 img.src = src; | 10 img.src = src; |
| 11 img.onload = () => { | 11 img.onload = () => { |
| 15 return img | 15 return img |
| 16 }); | 16 }); |
| 17 | 17 |
| 18 // Load treat image | 18 // Load treat image |
| 19 const treatImage = new Image(); | 19 const treatImage = new Image(); |
| 20 treatImage.src = "/public/dog-treat.png"; | 20 treatImage.src = "/public/dog-treat.webp"; |
| 21 | 21 |
| 22 // Load star images for background | 22 // Load star images for background |
| 23 const lightStarColors = ["#315a91", "#8f3f63", "#34705f", "#76519b"]; | 23 const lightStarColors = ["#315a91", "#8f3f63", "#34705f", "#76519b"]; |
| 24 let starImages = [ | 24 let starImages = [ |
| 25 { src: "/public/start-large.png", img: new Image(), lightImg: null }, | 25 { src: "/public/start-large.webp", img: new Image(), lightImg: null }, |
| 26 { src: "/public/start-small-1.png", img: new Image(), lightImg: null }, | 26 { src: "/public/start-small-1.webp", img: new Image(), lightImg: null }, |
| 27 { src: "/public/start-small-2.png", img: new Image(), lightImg: null }, | 27 { src: "/public/start-small-2.webp", img: new Image(), lightImg: null }, |
| 28 { src: "/public/start-small-3.png", img: new Image(), lightImg: null } | 28 { src: "/public/start-small-3.webp", img: new Image(), lightImg: null } |
| 29 ]; | 29 ]; |
| 30 starImages.forEach((star, index) => { | 30 starImages.forEach((star, index) => { |
| 31 star.img.onload = () => { | 31 star.img.onload = () => { |
| 32 const tinted = document.createElement("canvas"); | 32 const tinted = document.createElement("canvas"); |
| 33 tinted.width = star.img.naturalWidth; | 33 tinted.width = star.img.naturalWidth; |