Canvas arcade · single file · no libraries

BreakOut

60Fps
CRT 400×600 · 60Hz fixed stepAttract
◀▶movemousemove dragmove (touch)spacelaunch PpauseRrestartMmute

Operation / four rules

  1. Launch is a choice

    The ball leaves the paddle at ±30° off vertical, alternating each life — never straight up. Tap, click or hit space to fire.

  2. Where you hit decides everything

    Contact within ±1px of the paddle centre sends it vertical; the tips throw it out to 65°. Centre, then edges, is how you carve a tunnel.

  3. One brick per frame

    The ball sweeps in sub-steps and resolves only the nearest AABB contact, so it can never clip two bricks and cancel its own reflection.

  4. Speed never drifts

    Every bounce re-normalises the vector to a constant 3.44 px/frame with a vertical floor — no horizontal ping-pong stalls.

Spec / field

Canvas
400 × 600 px
Brick grid
8 × 4 @ 50 × 20
Max score
32 bricks · 320 pts
Paddle
60 × 10 @ y 580
Paddle range
x 0 → 340
Ball
r 3 · 3.44 px/f
Lives
3
Loop
rAF · 1/60 fixed step
Input
touch · mouse · keys