8b

64x64 • 1 frame • 8 FPS

Size×

AI Pixel Studio

12 / 12
1 credit per generationResets in ~24h
✨ HD Detail
Generation History (0)
Generated sprites and animations appear here.
Brush
7px
Frames (1)Active: #1
Canvas CTX JavaScript
103 lines
// ============================================================
//  my sprite — 64x64 pixel sprite, 1 frame
//  Made with the Ctx Asset Creator. Paste this into your game.
// ============================================================

const MY_SPRITE = {
  w: 64,
  h: 64,
  fps: 8,

  // Every letter is a colour. A dot "." means "leave this pixel see-through".
  palette: {
    // (empty sprite — go draw something!)
  },

  frames: [
    // frame 1
    [
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
      "................................................................",
    ],
  ],
};

// Draws one frame. scale = how many screen pixels wide each sprite pixel is.
function drawMySprite(ctx, x, y, scale = 4, frame = 0) {
  const rows = MY_SPRITE.frames[frame % MY_SPRITE.frames.length];

  for (let row = 0; row < rows.length; row++) {
    for (let col = 0; col < rows[row].length; col++) {
      const colour = MY_SPRITE.palette[rows[row][col]];
      if (!colour) continue;   // a "." — skip it so the background shows through
      ctx.fillStyle = colour;
      ctx.fillRect(x + col * scale, y + row * scale, scale, scale);
    }
  }
}

// ── How to use it in your game loop ──
// drawMySprite(ctx, 100, 80, 4);