← GranjaObjeto 3Dfogon/perro-pastor
Perro pastor
Arrastrá para girarlo// «Perro pastor» · gpt-6-sol (medium)
// A cute chunky cartoon border collie dog standing on four legs, built from simple clean boxes like a toy (no noisy fur). Body: a horizontal box about 20 blocks long (along y), 10 wide, 10 tall, black on top and sides, white underneath on the belly and a white chest bib at the front. Four straight white legs about 7 blocks tall, one at each corner, with light grey paws. Head: a separate box (about 11x10x10) sitting at the front (-y) end, raised a bit above the body, black with a clear white vertical blaze stripe down the center of the face; a smaller white box snout (about 5 wide, 4 tall) sticking out forward from the lower face with a black nose block on its tip and a small pink tongue under it; two black dot eyes with white highlights either side of the blaze. Two small triangular black ears on top of the head, tips folded forward. Tail: a thick black tail at the back curving upward, ending in a white tip.
// Chunky body: dark coat above a bright white belly.
box(18, 15, 11, 30, 36, 19, "#25252b");
box(19, 16, 19, 29, 35, 20, "#34343a");
box(19, 16, 9, 29, 35, 13, "#f5f4e9");
box(18, 17, 10, 18, 35, 12, "#e7e8e2");
box(30, 17, 10, 30, 35, 12, "#e7e8e2");
// Broad white chest bib at the front.
box(20, 14, 12, 28, 18, 18, "#f5f4e9");
box(22, 13, 14, 26, 15, 20, "#ffffff");
// Raised, square head.
box(19, 7, 18, 29, 17, 28, "#25252b");
box(20, 8, 28, 28, 16, 29, "#34343a");
box(19, 8, 19, 19, 16, 27, "#303037");
box(29, 8, 19, 29, 16, 27, "#303037");
// White face markings and a clear central blaze.
box(23, 6, 21, 25, 8, 28, "#ffffff");
box(23, 8, 29, 25, 12, 29, "#f5f4e9");
box(20, 6, 18, 22, 8, 20, "#f5f4e9");
box(26, 6, 18, 28, 8, 20, "#f5f4e9");
// Big, readable cartoon eyes.
box(20, 6, 23, 21, 6, 25, "#f5f4e9");
box(27, 6, 23, 28, 6, 25, "#f5f4e9");
set(21, 5, 24, "#111116");
set(27, 5, 24, "#111116");
set(21, 5, 25, "#ffffff");
set(27, 5, 25, "#ffffff");
// Boxy muzzle, nose and little tongue.
box(22, 3, 18, 26, 8, 22, "#f5f4e9");
box(22, 3, 22, 26, 6, 22, "#ffffff");
box(23, 2, 20, 25, 3, 22, "#151519");
box(23, 2, 17, 25, 3, 18, "#f08091");
box(24, 2, 17, 24, 2, 18, "#df657b");
// Pointed ears with their tips folded toward the front.
for (const [x0, x1] of [[19, 21], [27, 29]]) {
box(x0, 10, 29, x1, 14, 30, "#25252b");
box(x0, 9, 31, x1, 12, 32, "#25252b");
box(x0 + 1, 7, 32, x1 - 1, 10, 33, "#303037");
box(x0 + 1, 7, 31, x1 - 1, 8, 32, "#25252b");
}
// Each straight leg has its own shoulder or hip pivot.
function leg(name, x0, y0, speed) {
part(name, [x0 + 1, y0 + 1, 10]);
box(x0, y0, 3, x0 + 2, y0 + 3, 10, "#f5f4e9");
box(x0, y0, 2, x0 + 2, y0 + 3, 4, "#ffffff");
box(x0, y0 - 1, 0, x0 + 2, y0 + 3, 2, "#c8ccca");
box(x0, y0 - 1, 2, x0 + 2, y0, 2, "#e0e2dd");
animate(name, { type: "swing", axis: "x", speed, amplitude: 0.3 });
}
leg("frontLeft", 19, 16, 5);
leg("frontRight", 27, 16, -5);
leg("rearLeft", 19, 32, -5);
leg("rearRight", 27, 32, 5);
// Thick, upward-curving tail with a bright white tip.
part("tail", [24, 36, 17]);
box(22, 36, 16, 26, 39, 19, "#25252b");
box(22, 38, 18, 26, 40, 22, "#25252b");
box(23, 40, 21, 26, 42, 25, "#303037");
box(23, 41, 24, 26, 43, 27, "#f5f4e9");
box(23, 42, 27, 25, 44, 28, "#ffffff");
animate("tail", { type: "swing", axis: "z", speed: 8, amplitude: 0.5 });import { draw } from "./assets/voxel";
import { perroPastor } from "./assets/perro-pastor";
// En cada cuadro: parado sobre (x, y), el centro de su base.
draw(ctx, perroPastor, 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 perro-pastor
# Con las herramientas de Fogón (conector)
add_assets({ slug: "<tu-juego>", ids: ["perro-pastor"] })
# Queda en client/assets/perro-pastor.ts
# https://fogon.page/object/perro-pastor