p5collide
v2.0.2
Published
a module that check collisions
Downloads
30
Readme
p5collide
A 2d collision detection module for nodejs
p5collide provides tools for calculating collision detection for 2D geometry.
p5collide contains some versions of, and references to, the functions in Jeffrey Thompson's Collision Detection Book. His code is CC BY-NC-SA 4.0, so, this is too! I highly, highly, reccomend reading his book to better understand all of the details involved in collision detection. Implementing this library into your code will be much easier and more efficent after reading it!
It's an incredible resource for this kind of work! – http://www.jeffreythompson.org/collision-detection/
All p5collide functions return true
if the specified geometry is colliding and false
if they are not.
Install
npm install p5collide
Table of Contents
2D Collision Detection
- collideAll()
- collidePointPoint()
- collidePointCircle()
- collidePointEllipse()
- collidePointRect()
- collidePointLine()
- collideRectRect()
- collideCircleCircle()
- collideRectCircle()
- collideLineLine()
- collideLineCircle()
- collideLineRect()
- collidePointPoly()
- collideCirclePoly()
- collideRectPoly()
- collideLinePoly()
- collidePolyPoly()
- collidePointTriangle()
collideAll()
1. Usage
With "Rect":
const Rect = {
type: "Rect",
data: [x, y, width, height]
}
With "Circle":
const Circle = {
type: "Circle",
data: [x, y, diameters]
}
With "Point":
const Point = {
type: "Point",
data: [x, y]
}
With "Ellipse":
const Ellipse = {
type: "Ellipse",
data: [x, y, width, height]
}
With "Line":
const Line = {
type: "Line",
data: [x1, y1, x2, y2, buffer]
}
With "Poly":
const PolyData = [
{ x1, y1 },
{ x2, y2 },
{ x3, y3 },
{ x4, y4 }
]
const Poly = {
type: "Poly",
data: [PolyData]
}
With "Triangle":
const Triangle = {
type: "Triangle",
data: [x1, y1, x2, y2, x3, y3]
}
2. Example
const Collides = require("p5collide");
let object1 = {
type: "RECT",
data: [0, 1, 2, 3]
}
let object2 = {
type: "CIRCLE",
data: [1, 1, 2]
}
console.log(Collides.collideAll(object1, object2)); // Yes, it's true
3. List possible object type
- Rect
- Circle
- Point
- Ellipse
- Line
- Poly
- Triangle
Other p5collide's function examples & documentation
You can see it here: https://github.com/bmoren/p5.collide2D
Source
https://github.com/bmoren/p5.collide2D