ludic/map-size.html
2026-09-17 22:10:03 +00:00

57 lines
No EOL
3 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Map.size — Ludic</title>
<meta name="description" content="Set the tilemap dimensions in cells before filling rows.">
<link rel="stylesheet" href="base.css">
<link rel="stylesheet" href="docs.css">
</head>
<body>
<header class="nav"><div class="wrap nav-in"><a class="brand" href="index.html"><span class="logo">L</span> Ludic</a><button class="nav-toggle" aria-label="Toggle menu" aria-expanded="false">☰</button><nav class="nav-links"><a href="index.html">Home</a><a href="api.html">API Reference</a><a class="nav-cta" href="https://git.workshopsoft.io/workshopsoft/ludic">Source ↗</a></nav></div></header>
<main class="wrap item">
<div class="crumbs"><a href="api.html">API Reference</a> <span>›</span> <a href="ns-map.html">Map — tilemap</a> <span>›</span> <span class="here">Map.size</span></div>
<div class="item-head">
<span class="kind-badge kind-method">method</span>
<h1 id="top">Map.size</h1>
</div>
<code class="sig">Map.size(width, height)</code>
<div class="desc"><p>Declares the dimensions of the built-in tilemap, in cells (not pixels). Call it once during a <code>Start</code>-phase handler before you fill the map with <code>Map.row</code>, so the runtime knows how many columns and rows to allocate. The tilemap is a lightweight, character-based grid the whole program can read with <code>Map.tile</code>, which is handy for static level geometry such as walls and floors. Reads outside these bounds are treated as a wall character, so the edge of the world is solid for free.</p></div>
<div class="params"><h2>Parameters</h2><div class="param" id="param-width"><code class="pname">width</code><span class="pdesc">the map width in cells (columns)</span></div><div class="param" id="param-height"><code class="pname">height</code><span class="pdesc">the map height in cells (rows)</span></div></div>
<div class="examples"><h2>Example</h2><pre data-lang="ludic">program LevelBounds {
const GRID_WIDTH: int = 12
const GRID_HEIGHT: int = 4
const TILE_SIZE: int = 16
handler BuildLevel phase Start {
Map.size(width: GRID_WIDTH, height: GRID_HEIGHT)
Map.row(y: 0, cells: "############")
Map.row(y: 1, cells: "#..........#")
Map.row(y: 2, cells: "#..........#")
Map.row(y: 3, cells: "############")
}
handler DrawWorld phase Render {
Screen.clear(Color.MidnightBlue)
for row in 0 .. GRID_HEIGHT {
for column in 0 .. GRID_WIDTH {
if Map.tile(x: column, y: row) == '#' {
Screen.fill_rectangle(
x: column * TILE_SIZE,
y: row * TILE_SIZE,
width: TILE_SIZE,
height: TILE_SIZE,
color: Color.White)
}
}
}
Screen.show()
}
}</pre></div>
<a class="back" href="api.html">← All symbols</a>
</main>
<script src="ludic-highlight.js"></script>
<script>Ludic.highlightAll(); Ludic.installCards(); Ludic.flashTarget();</script>
</body></html>