Efficient collision detection with multiple shape types and event callbacks.
Imports
import { ElementObject } from "@snap-engine/core";import { CollisionEngine, RectCollider, CircleCollider, PointCollider,} from "@snap-engine/core/collision";
Setup
const engine = new Engine();engine.setCollisionEngine(new CollisionEngine());
Basic Usage
const player = new ElementObject(engine);player.element = document.getElementById("player");const obstacle = new ElementObject(engine);obstacle.element = document.getElementById("obstacle");const playerCollider = new CircleCollider(engine, player, 0, 0, 25);player.addCollider(playerCollider);const obstacleCollider = new RectCollider(engine, obstacle, 0, 0, 100, 50);obstacle.addCollider(obstacleCollider);playerCollider.event.collider.onBeginContact = (self, other) => { console.log("Collision started", self, other);};playerCollider.event.collider.onEndContact = (self, other) => { console.log("Collision ended", self, other);};
Collider Constructors
const rect = new RectCollider(engine, object, -50, -25, 100, 50);object.addCollider(rect);const circle = new CircleCollider(engine, object, 0, 0, 30);object.addCollider(circle);const point = new PointCollider(engine, object, 0, 0);object.addCollider(point);