Quick answer: Edit the per-tile collision polygons. Set the four corners to exactly (0,0)–(size,size). Run the polygons flush against tile bounds so adjacent tiles share edges. The Solid behavior then sees one continuous floor.

Player walks along a flat row of tiles. Sprite jiggles up and down a single pixel each step. Or jump-clings to a wall and the player snaps free for a frame at every tile boundary. The Solid behavior is doing its job; the tilemap is feeding it bad polygons.

The Symptom

Player flickers vertically by 1–2 pixels while walking. Or x-velocity stutters at tile boundaries. Or hitbox-vs-tilemap overlap test toggles between true and false within a frame.

What Causes This

Each tile in a Tilemap has its own collision polygon. By default, Construct generates one based on the visible pixels. If your tile art doesn’t fill the full grid (e.g. a grass tile with a slight bevel) the polygon shrinks inward, and adjacent tiles don’t share edges. The Solid behavior pushes the player out of one tile, into the gap, then immediately overlaps the next, push back, repeat.

The Fix

Step 1: Edit tile collision polygons. Project → Tilemap object → Properties → Edit collision polygons. The polygon editor opens.

Step 2: Align corners to tile bounds. For a fully solid tile, set the four corners to exactly (0,0), (size,0), (size,size), (0,size). Ctrl-click a vertex and type the coordinates if the visual editor is finicky.

Step 3: Apply across all solid tiles. Each tile has its own polygon. The polygon editor lets you copy & paste between tiles. Use this to ensure all your solid tiles use the identical full-tile polygon.

Step 4: Half-solid tiles. For a half-height platform, the polygon is (0, size/2)–(size, size). For diagonal slope, three vertices.

Solid floor tile (32x32):    (0,0) (32,0) (32,32) (0,32)
Half-tile platform:           (0,16) (32,16) (32,32) (0,32)
Slope-up-right:               (0,32) (32,0) (32,32)

Solid Behavior Settings

The Tilemap object should carry the Solid behavior (or Jumpthru, for one-way). Don’t put both Solid and Jumpthru on the same tilemap and rely on per-tile polygons to differentiate — behaviors are object-wide. For one-way platforms, use a separate tilemap with the Jumpthru behavior.

Player Hitbox

Open the player Sprite’s Edit collision polygon. A capsule (or beveled rectangle) hitbox slides past tile seams more smoothly than a square. Even with perfect polygons, a square-on-square contact can feel sticky.

Verifying

Project → Properties → Layout → Show collision polygons (debug overlay). Run the layout. Tile polygons should appear as flush rectangles. Walk the player; the player’s polygon shouldn’t bounce. If it does, the polygon is the wrong size.

“Polygons flush to tile bounds. Adjacent tiles share edges. Solid behavior glides.”

Related Issues

For Construct collision detection misses, see fast object collision. For platform jitter, see platform jitter.

Polygons full-tile. Edges shared. Player walks straight.