28 lines
813 B
JavaScript
28 lines
813 B
JavaScript
import SAT from 'sat'
|
|
|
|
export default class SATX {
|
|
static collideObject(collider1, collider2) {
|
|
if (collider1 instanceof SAT.Circle && collider2 instanceof SAT.Circle) {
|
|
return SAT.testCircleCircle(collider1, collider2)
|
|
}
|
|
|
|
if (collider1 instanceof SAT.Circle && collider2 instanceof SAT.Polygon) {
|
|
return SAT.testCirclePolygon(collider1, collider2)
|
|
}
|
|
|
|
if (collider1 instanceof SAT.Polygon && collider2 instanceof SAT.Circle) {
|
|
return SAT.testPolygonCircle(collider1, collider2)
|
|
}
|
|
|
|
if (collider1 instanceof SAT.Polygon && collider2 instanceof SAT.Polygon) {
|
|
return SAT.testPolygonPolygon(collider1, collider2)
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
static collideObjects(collider1, colliders) {
|
|
return colliders.some((c) => this.collideObject(collider1, c))
|
|
}
|
|
}
|