--- id: screen-draw_number name: Screen.draw_number category: screen kind: namespace-method tokens: Screen.draw_number sig: Screen.draw_number(x, y, value, color, scale) tip: Draw an integer directly, with no string allocation or conversion. order: 5 ns: Screen member: draw_number --- Draws an integer as digits using the built-in font, without first turning it into a string — so it never allocates and is safe to call every frame for constantly-changing values. Use it for scores, timers, frame counts, health totals, and any HUD number, while reserving Screen.draw_text for fixed labels. It takes the same top-left position, color, and integer scale as draw_text. Negative values are drawn with a leading minus sign. Parameters: - `x` — the left edge of the first digit, in pixels - `y` — the top edge of the number, in pixels - `value` — the integer to draw - `color` — the digit color, e.g. a `Color.*` name or a `0xRRGGBB` literal - `scale` — integer size multiplier (`1` = native size) ```ludic program ScoreHud { state ScoreHudState { score: int = 0 } handler EarnPoints(score_hud_st: mut ScoreHudState) phase Update { score_hud_st.score = score_hud_st.score + 1 } handler DrawWorld(score_hud_st: ScoreHudState) phase Render { Screen.clear(Color.MidnightBlue) Screen.draw_text(x: 6, y: 4, text: "SCORE", color: Color.White, scale: 1) Screen.draw_number(x: 52, y: 4, value: score_hud_st.score, color: Color.Gold, scale: 1) Screen.show() } } ```