feat: robins

This commit is contained in:
Dan Finch 2026-08-07 13:37:30 +02:00
parent a4490f7a20
commit bd88d3cbd6
12 changed files with 159 additions and 54 deletions

View file

@ -212,9 +212,9 @@ const frog: Shade = (x, y) => {
const n = noise(x, y) * 10
if (x < 34) {
const belly = (y / 48) * 28
return [66 + n, 120 + belly + n, 60 + n, 255]
return [80 + n, 140 + belly + n, 80 + n, 255]
}
return [26 + n, 42 + n, 30 + n, 255]
return [46 + n, 72 + n, 50 + n, 255]
}
// Bee atlas: yellow/black stripe bands down the left (u<0.54, banded by y so the
@ -231,6 +231,22 @@ const bee: Shade = (x, y) => {
return [228 + n, 238 + n, 248 + n, 255]
}
// Robin atlas: warm brown back/head/tail (left), orange-red breast (mid), a spare
// pale band, and a dark eye/beak tone (right) -- picked per body part by its UVs.
const robin: Shade = (x, y) => {
const n = noise(x, y) * 10
if (x < 19) {
return [120 + n, 92 + n, 58 + n, 255]
}
if (x < 34) {
return [214 + n, 98 + n, 48 + n, 255]
}
if (x < 41) {
return [226 + n, 224 + n, 216 + n, 255]
}
return [34 + n, 28 + n, 26 + n, 255]
}
// 48x64, transparent background, a simple round-topped figure with eyes.
const npc: Shade = (x, y) => {
const dx = (x - 24) / 17
@ -271,6 +287,7 @@ const assets: Array<[string, number, number, Shade]> = [
["npc", 48, 64, npc],
["frog", 48, 48, frog],
["bee", 48, 48, bee],
["robin", 48, 48, robin],
]
for (const [name, w, h, shade] of assets) {