← AnimalesObjeto 3Dfogon/lobo
Lobo
Arrastrá para girarlo// «Lobo» · gpt-6-sol (medium)
// A cartoon grey wolf, horizontal along y, head at the front (-y): a strong body in grey with lighter cream belly, chest and muzzle, darker grey back, four long legs, a long snout with a black nose, yellow eyes and pointy upright ears. A bushy grey tail held low.
const grey = "#8b9295";
const lightGrey = "#aab0b1";
const darkGrey = "#626c72";
const cream = "#e7dfca";
const creamShade = "#ccc4b2";
const nose = "#22272b";
// Rounded body, with a dark saddle and a pale underside.
ellipsoid(24, 26, 19, 10, 14, 8, grey);
ellipsoid(24, 26, 24, 9, 13, 4, darkGrey);
ellipsoid(24, 25, 15, 8, 12, 5, creamShade);
ellipsoid(24, 24, 16, 7, 11, 4, cream);
// A little irregularity in the broad fur surfaces.
forEach((x, y, z, color) => {
if (color === grey && rand() < 0.035) set(x, y, z, lightGrey);
if (color === darkGrey && rand() < 0.025) set(x, y, z, "#737b7e");
});
// Bushy tail, held low behind the body.
ellipsoid(24, 39, 16, 5, 5, 5, grey);
ellipsoid(24, 42, 15, 4, 3, 4, lightGrey);
ellipsoid(24, 44, 14, 3, 2, 3, darkGrey);
ellipsoid(24, 44, 13, 2, 2, 2, creamShade);
// Full chest and oversized head.
ellipsoid(24, 15, 19, 8, 6, 8, creamShade);
ellipsoid(24, 13, 21, 7, 5, 7, cream);
ellipsoid(24, 13, 26, 9, 8, 8, grey);
ellipsoid(24, 12, 31, 7, 6, 3, lightGrey);
// Tall, pointed ears: dark outer fur and pale front insets.
for (const cx of [18, 30]) {
box(cx - 3, 10, 32, cx + 3, 15, 34, darkGrey);
box(cx - 2, 10, 35, cx + 2, 14, 36, darkGrey);
box(cx - 1, 11, 37, cx + 1, 13, 38, darkGrey);
set(cx, 12, 39, darkGrey);
box(cx - 1, 9, 33, cx + 1, 9, 35, creamShade);
set(cx, 9, 36, creamShade);
}
// Cream cheeks and the long, projecting muzzle.
ellipsoid(19, 9, 22, 4, 4, 4, cream);
ellipsoid(29, 9, 22, 4, 4, 4, cream);
ellipsoid(24, 7, 22, 6, 6, 4, cream);
ellipsoid(24, 5, 21, 5, 3, 3, "#f2ead7");
box(22, 3, 23, 26, 4, 24, nose);
box(23, 2, 22, 25, 3, 23, nose);
set(24, 3, 20, "#555250");
line(22, 4, 19, 26, 4, 19, 0, "#716d68");
// Bold yellow eyes with simple black pupils.
for (const cx of [19, 29]) {
box(cx - 1, 6, 28, cx + 1, 7, 30, "#e5b94b");
box(cx, 5, 28, cx, 5, 29, "#25282a");
set(cx, 5, 30, "#fff4cc");
}
// Four separately swinging legs, jointed at the shoulders and hips.
function leg(name, x, y, speed) {
part(name, [x, y, 15]);
ellipsoid(x, y, 13, 3, 3, 4, grey);
cylinder(x, y, 2, 2.5, 12, darkGrey);
box(x - 1, y - 2, 5, x + 1, y - 2, 11, grey);
ellipsoid(x, y - 2, 2, 3, 4, 2, grey);
box(x - 2, y - 5, 0, x + 2, y - 3, 1, darkGrey);
for (const dx of [-2, 0, 2]) set(x + dx, y - 5, 1, "#c5c3b9");
animate(name, { type: "swing", axis: "x", speed, amplitude: 0.3 });
}
leg("frontLeft", 17, 16, 5);
leg("frontRight", 31, 16, -5);
leg("rearLeft", 17, 34, -5);
leg("rearRight", 31, 34, 5);
part("body");import { draw } from "./assets/voxel";
import { lobo } from "./assets/lobo";
// En cada cuadro: parado sobre (x, y), el centro de su base.
draw(ctx, lobo, x, y, { size: 64, angle: 0, t: performance.now() / 1000 });
// size: lo que mide en px su lado más largo
// angle: giro sobre el piso, en radianes
// t: segundos; si se mueve, se anima solo con eso# En una terminal, en la carpeta del juego
fogon assets add lobo
# Con las herramientas de Fogón (conector)
add_assets({ slug: "<tu-juego>", ids: ["lobo"] })
# Queda en client/assets/lobo.ts
# https://fogon.page/object/lobo