Forma saysCanvas paths let you draw lines, arcs, and curves — begin a path, move, draw, then stroke or fill it.
Beyond rectangles, canvas draws arbitrary shapes via paths. Call beginPath(), position with moveTo(x,y), add segments with lineTo, arc (circles), or bezierCurveTo, then render with stroke() (outline) or fill().
Paths are stateful: every segment adds to the current path until the next beginPath(). Forgetting to begin a new path is the classic bug where old shapes get re-stroked with new styles.
Power-ups you unlock
beginPath() → moveTo/lineTo/arc → stroke() or fill()
arc(x,y,r,start,end) draws circles and arcs
stroke = outline · fill = solid
Each beginPath() starts a fresh shape
Captain Invalid Input attacks — common mistakes
Skipping beginPath() so all shapes merge into one path
Angles in arc() are radians, not degrees
Calling stroke before defining any path segments
Boss battleDraw a triangle with lineTo and a full circle with arc(x, y, r, 0, Math.PI*2). Stroke one and fill the other.