fogón

← Level pieces 23D assetfogon/nivel-bandera-de-inicio

Bandera de inicio

by fogonCC04007 blocks
Bandera de inicioDrag to turn it
// «Bandera de inicio» · gpt-6-sol (medium)
// A start line: a full 48 wide on x checkered black and white strip on the floor (y 18..29, z 0..1), and at both ends (x 2 and x 45) a tall grey pole 36 tall holding a horizontal banner across the top (z 30..37) that is green with a white big arrow pointing forward (-y).

// Full-width black-and-white start line.
for (let x = 0; x < 48; x++) {
  for (let y = 18; y <= 29; y++) {
    const white = (Math.floor(x / 3) + Math.floor((y - 18) / 3)) % 2 === 0;
    box(x, y, 0, x, y, 1, white ? "#f7f7ef" : "#20242a");
  }
}

// Steel-grey poles, centered at x=2 and x=45.
for (const x of [2, 45]) {
  box(x - 2, 21, 2, x + 2, 26, 3, "#747e83");
  box(x - 1, 22, 4, x + 1, 25, 35, "#aab4b6");
  box(x - 1, 22, 4, x - 1, 25, 35, "#d5dddd");
  box(x + 1, 22, 4, x + 1, 25, 35, "#758186");
  box(x - 1, 22, 28, x + 1, 25, 29, "#69767a");
}

// The banner and its arrow swing together.
part("cartel", [24, 24, 34]);

// Upright, front-facing part of the banner.
box(4, 24, 30, 43, 26, 36, "#39c850");
box(4, 23, 30, 43, 23, 30, "#218f41");
box(4, 23, 31, 43, 23, 35, "#31ba49");
box(4, 23, 36, 43, 23, 36, "#72e36a");
box(4, 23, 31, 5, 23, 35, "#218f41");
box(42, 23, 31, 43, 23, 35, "#218f41");

// Chunky white START lettering on the front.
const letters = {
  S: ["111", "100", "111", "001", "111"],
  T: ["111", "010", "010", "010", "010"],
  A: ["111", "101", "111", "101", "101"],
  R: ["110", "101", "110", "101", "101"]
};
let cursor = 14;
for (const ch of "START") {
  const glyph = letters[ch];
  for (let row = 0; row < 5; row++) {
    for (let col = 0; col < 3; col++) {
      if (glyph[row][col] === "1")
        set(cursor + col, 22, 35 - row, "#fffef0");
    }
  }
  cursor += 4;
}

// Broad green top keeps the forward-pointing arrow readable from above.
box(4, 18, 36, 43, 29, 37, "#38c84d");
box(4, 18, 36, 43, 18, 36, "#249e41");
box(4, 29, 36, 43, 29, 36, "#66df61");

// Arrow points toward the viewer, along -y.
const arrowRows = [
  [18, 23, 24],
  [19, 22, 25],
  [20, 20, 27],
  [21, 18, 29],
  [22, 16, 31],
  [23, 14, 33],
  [24, 14, 33],
  [25, 21, 26],
  [26, 21, 26],
  [27, 21, 26],
  [28, 21, 26],
  [29, 21, 26]
];
for (const [y, left, right] of arrowRows)
  box(left, y, 37, right, y, 37, "#fffef0");

animate("cartel", { type: "swing", axis: "x", amplitude: 0.12, speed: 2 });