← Casa completaObjeto 3Dfogon/cama-marinera
Cama marinera
Arrastrá para girarlo// «Cama marinera» · gpt-6-sol (medium)
// A bunk bed: two stacked single beds in a sturdy light wood frame with four tall corner posts, the lower bed with a red blanket and the upper bed with a blue blanket, each with a white pillow at the back. A wooden ladder on the right side going up to the top bed, and a safety rail along the front of the upper bed.
const honey = "#d99a50";
const honeyLight = "#efb86c";
const honeyDark = "#a86b37";
const walnut = "#83512f";
const cream = "#fff7e9";
const creamShade = "#e8dfd2";
function wood(x0, y0, z0, x1, y1, z1) {
box(x0, y0, z0, x1, y1, z1, honey);
box(x0, y0, z1, x1, y1, z1, honeyLight);
box(x0, y0, z0, x1, y0, z0, honeyDark);
}
function bed(level, blanket, blanketLight, blanketDark) {
// Thick wooden platform and its visible front apron.
wood(8, 12, level, 39, 36, level + 2);
box(9, 11, level, 38, 12, level + 2, honeyDark);
box(10, 11, level + 2, 37, 11, level + 2, honeyLight);
// Cream mattress with softened, stepped corners.
box(10, 14, level + 3, 37, 34, level + 4, creamShade);
box(11, 13, level + 4, 36, 34, level + 5, cream);
box(12, 14, level + 5, 35, 33, level + 5, "#ffffff");
// One plump pillow at the back.
box(13, 28, level + 6, 31, 34, level + 7, creamShade);
box(14, 28, level + 7, 30, 33, level + 8, "#ffffff");
box(16, 29, level + 8, 28, 32, level + 8, "#fffdf5");
// Blanket tucked across the front and middle of the mattress.
box(11, 14, level + 6, 36, 27, level + 7, blanket);
box(12, 15, level + 8, 35, 26, level + 8, blanketLight);
box(11, 14, level + 7, 36, 15, level + 8, blanketDark);
box(12, 17, level + 8, 35, 17, level + 8, blanket);
box(13, 26, level + 8, 34, 27, level + 8, blanketDark);
// A few gentle quilt creases.
for (let x = 17; x <= 31; x += 7) {
box(x, 20, level + 8, x + 2, 20, level + 8, blanket);
}
}
bed(8, "#d95353", "#ee7771", "#ad3d43");
bed(26, "#65a9dc", "#8cc9ed", "#477fb4");
// Four tall, chunky corner posts.
for (const x of [5, 39]) {
for (const y of [10, 35]) {
box(x, y, 0, x + 3, y + 3, 39, honey);
box(x, y, 1, x + 3, y, 38, honeyDark);
box(x, y, 39, x + 3, y + 3, 40, honeyLight);
box(x + 1, y + 1, 41, x + 2, y + 2, 41, walnut);
box(x, y, 3, x + 3, y + 3, 4, honeyLight);
}
}
// Back headboards, visible above each pillow.
for (const z of [16, 34]) {
wood(9, 35, z, 38, 37, z + 3);
box(12, 34, z + 1, 35, 34, z + 1, honeyLight);
}
// Sturdy side rails and little walnut joinery accents.
for (const z of [8, 26]) {
wood(5, 13, z, 8, 35, z + 3);
wood(39, 13, z, 42, 35, z + 3);
for (const x of [6, 40]) {
for (const y of [15, 32]) set(x, y, z + 1, walnut);
}
}
// Upper bunk safety rail: open at the right for the ladder.
wood(9, 10, 35, 33, 12, 37);
for (const x of [12, 21, 30]) {
wood(x, 10, 29, x + 2, 12, 35);
}
box(9, 10, 38, 33, 11, 38, honeyLight);
// A short rail along the exposed upper left edge.
wood(5, 15, 35, 7, 34, 37);
for (const y of [18, 27]) wood(5, y, 29, 7, y + 2, 35);
// Front-right ladder, reaching the opening in the safety rail.
wood(34, 7, 0, 36, 9, 35);
wood(42, 7, 0, 44, 9, 35);
for (const z of [5, 11, 17, 23, 29, 34]) {
box(37, 7, z, 41, 9, z + 1, honeyLight);
box(37, 7, z, 41, 7, z, honeyDark);
}
box(34, 7, 35, 36, 9, 36, honeyLight);
box(42, 7, 35, 44, 9, 36, honeyLight);
// Fine wood-grain flecks, kept subtle on the broad frame pieces.
for (let i = 0; i < 48; i++) {
const x = 10 + Math.floor(rand() * 28);
const z = rand() < 0.5 ? 9 : 27;
set(x, 12, z, rand() < 0.5 ? honeyLight : honeyDark);
}import { draw } from "./assets/voxel";
import { camaMarinera } from "./assets/cama-marinera";
// En cada cuadro: parado sobre (x, y), el centro de su base.
draw(ctx, camaMarinera, 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 cama-marinera
# Con las herramientas de Fogón (conector)
add_assets({ slug: "<tu-juego>", ids: ["cama-marinera"] })
# Queda en client/assets/cama-marinera.ts
# https://fogon.page/object/cama-marinera