Physics stage 2: colliders gain the shapes capsule and polygon, a polygon keeps its corners in the property points, turns, scales and mirrors with its object and is edited in the scene view (drag a corner, click an edge to insert one, double-click to delete, at least three stay, each step one undo step), a concave polygon is split into convex parts, a self-intersecting one is drawn red and collides with nothing, Rapier gets a capsule and one convex collider per part on the same body, and Move and the editor run use our own f64 geometry for the new shapes, where on a tie between two normals the one that blocks the move least wins, so a box no longer stops at the foot of a slope (#151); first version of a collision outline per texture frame, edited in the texture tab with the new Collision toggle, which a plain tile blocks with instead of its rectangle (#141, to be reworked)
game-maker / gate (push) Successful in 1m52s
game-maker / suite (push) Successful in 6m41s

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
adminandClaude Opus 5 committed 2026-09-18 22:56:25 +02:00
1 parent 1b5e386b60
commit 32057a96fc
25 files changed
+2341 -122

No files matched your search

+5
View File
@@ -48,8 +48,10 @@ import {
isTextureFile,
normalizeBorders,
normalizeFrameRect,
setFrameCollision,
setFrameSlice,
} from '../model/texture';
import { pointsOf } from '../model/polygon';
import { hasParentCycle } from '../model/walk';
import {
DECLARED_PORT_KINDS,
@@ -479,6 +481,9 @@ function normalizeTexture(
),
fill: f.fill === 'stretch' ? 'stretch' : DEFAULT_FILL,
});
// Corners that are no numbers fall away; what is left is kept only as an outline (#141).
const collision = pointsOf(f.collision as PropertyValue);
if (collision.length >= 3) setFrameCollision(frame, collision);
frames.push(frame);
}
return { file, width, height, frames };