yy-intersects
v1.0.8
Published
shape collision / intersects library for pixi.js
Downloads
16
Readme
intersects
shape collision / intersects library for pixi.js
rationale
this is a simple libary that i designed for use with my game engine. most of the better collision libraries were too large or too heavily invested in physics. i wanted something simple that worked well with pixi.js.
Code Example
// point-Rectangle intersection
var sprite = new PIXI.Sprite(texture);
sprite.shape = new Intersects.Rectangle(sprite);
sprite.position.set(5, 5);
if (sprite.shape.collidesPoint(new PIXI.Point(10, 10)))
{
console.log('intersected');
}
Live Example
https://davidfig.github.io/pixi-intersects/
Installation
npm i yy-intersects
API Reference
Classes
Circle
circle shape
Kind: global class
new Circle(article, [options])
| Param | Type | Description | | --- | --- | --- | | article | Article | that uses this shape | | [options] | object | @see Circle.set |
circle.set(options)
Kind: instance method of Circle
| Param | Type | Default | Description | | --- | --- | --- | --- | | options | object | | | | [options.positionObject] | object | this.article | use this to update position | | [options.radius] | number | | otherwise article.width / 2 is used as radius |
circle.update()
update AABB
Kind: instance method of Circle
circle.collidesCircle(circle) ⇒ boolean
Does Circle collide with Circle?
Kind: instance method of Circle
| Param | Type | | --- | --- | | circle | Circle |
circle.collidesPoint(point) ⇒ boolean
Does Circle collide with point?
Kind: instance method of Circle
| Param | Type | | --- | --- | | point | Point |
circle.collidesLine(p1, p2) ⇒ boolean
Does Circle collide with a line? from http://stackoverflow.com/a/10392860/1955997
Kind: instance method of Circle
| Param | Type | | --- | --- | | p1 | Point | | p2 | Point |
circle.collidesRectangle(rectangle)
Does circle collide with Rectangle?
Kind: instance method of Circle
| Param | Type | | --- | --- | | rectangle | Rectangle |
Polygon
Polygon
Kind: global class
new Polygon(article, points, [options])
| Param | Type | Description | | --- | --- | --- | | article | Article | that uses this shape | | points | array | in the form of [x, y, x2, y2, x3, y3, . . .] | | [options] | object | @see Polygon.set |
polygon.set(options)
Kind: instance method of Polygon
| Param | Type | Description | | --- | --- | --- | | options | object | | | options.points | Array.<PIXI.Point> | | | [options.center] | PIXI.DisplayObject | object to use for position (and rotation, unless separately defined) | | [options.rotation] | PIXI.DisplayObject | object to use for rotation instead of options.center or article |
polygon.update()
based on http://www.willperone.net/Code/coderr.php
Kind: instance method of Polygon
polygon.collidesRectangle(rectangle) ⇒ boolean
Does Rectangle collide Rectangle?
Kind: instance method of Polygon
| Param | Type | | --- | --- | | rectangle | Rectangle |
polygon.collidesCircle(circle) ⇒ boolean
Does Rectangle collide Circle?
Kind: instance method of Polygon
| Param | Type | | --- | --- | | circle | Circle |
Rectangle
Kind: global class
new Rectangle(article, [options])
| Param | Type | Description | | --- | --- | --- | | article | object | that uses this shape | | [options] | object | @see Rectangle.set |
rectangle.width
width of rectangle
Kind: instance property of Rectangle
rectangle.height
height of rectangle
Kind: instance property of Rectangle
rectangle.vertices
sets vertices Array[8]
Kind: instance property of Rectangle
rectangle.set(options)
Kind: instance method of Rectangle
| Param | Type | Description | | --- | --- | --- | | options | object | | | [options.width] | number | width of object when aligned | | [options.height] | number | height of object when aligned | | [options.square] | number | side size of a square | | [options.center] | object | object to use for position (and rotation, unless separately defined) | | [options.rotation] | object | object to use for rotation instead of options.center or article | | [options.noRotate] | boolean | object does not rotate (simplifies math) |
rectangle.update()
based on http://www.willperone.net/Code/coderr.php update AABB and sets vertices to dirty
Kind: instance method of Rectangle
rectangle.updateVertices()
updates vertices automatically when dirty
Kind: instance method of Rectangle
rectangle.collidesRectangle(rectangle) ⇒ boolean
Does Rectangle collide Rectangle?
Kind: instance method of Rectangle
| Param | Type | | --- | --- | | rectangle | Rectangle |
rectangle.collidesCircle(circle) ⇒ boolean
Does Rectangle collide Circle?
Kind: instance method of Rectangle
| Param | Type | | --- | --- | | circle | Circle |
Shape
base class of all shapes
Kind: global class
- Shape
- new Shape([article])
- instance
- .AABBs(AABB)
- .collidesPoint(point) ⇒ boolean
- .collidesPolygon(polygon, isAABB) ⇒ boolean
- .collidesLine(p1, p2) ⇒ boolean
- .collides()
- static
- .lineLine(p1, p2, p3, p4) ⇒ boolean
new Shape([article])
| Param | Type | Description | | --- | --- | --- | | [article] | object | that uses this shape |
shape.AABBs(AABB)
collides with this shape's AABB box
Kind: instance method of Shape
| Param | Type | | --- | --- | | AABB | object |
shape.collidesPoint(point) ⇒ boolean
point-polygon collision test based on this.vertices based on http://stackoverflow.com/questions/217578/how-can-i-determine-whether-a-2d-point-is-within-a-polygon/2922778#2922778
Kind: instance method of Shape
| Param | Type | | --- | --- | | point | Point |
shape.collidesPolygon(polygon, isAABB) ⇒ boolean
Does Polygon collide Polygon or AABB? based on http://stackoverflow.com/questions/10962379/how-to-check-intersection-between-2-rotated-rectangles
Kind: instance method of Shape
| Param | Type | | --- | --- | | polygon | Array | | isAABB | boolean |
shape.collidesLine(p1, p2) ⇒ boolean
Does polygon collide Line?
Kind: instance method of Shape
| Param | Type | | --- | --- | | p1 | Point | | p2 | Point |
shape.collides()
catch all for automatic collision checking
Kind: instance method of Shape
Shape.lineLine(p1, p2, p3, p4) ⇒ boolean
Do two lines intersect? from http://stackoverflow.com/questions/563198/how-do-you-detect-where-two-line-segments-intersect
Kind: static method of Shape
| Param | Type | | --- | --- | | p1 | Point | | p2 | Point | | p3 | Point | | p4 | Point |
Copyright (c) 2016 YOPEY YOPEY LLC - MIT License - Documented by jsdoc-to-markdown