Commit graph

207 commits

Author SHA1 Message Date
fillmoreb
3f5de71add Fixe Phaser.Rectangle.aabb()
Number.MIN_VALUE does not return the most negative number, but rather the smallest representable number above 0.  As a result, Phaser.Rectangle.aabb() did not work correctly when the points had negative values.
2016-06-08 16:14:30 -06:00
gotenxds
2c752a25c2 Deleted whitespace. 2016-05-27 15:55:46 +03:00
photonstorm
07ef075e92 Phaser.Line.intersectsRectangle checks for intersection between a Line and a Rectangle, or any Rectangle-like object such as a Sprite or Body. 2016-05-24 02:30:00 +01:00
photonstorm
f40cfbe2ae 2015 - 2016. 2016-04-04 22:16:16 +01:00
Samuel Hodge
6b85dbd6a9 Update Polygon.js 2016-02-28 16:00:29 -05:00
Samuel Hodge
a53676a924 Added new format for polygon points 2016-02-26 14:56:25 -05:00
photonstorm
11fa0c2690 Docs fix #2310 2016-02-02 16:19:09 +00:00
Richard Davey
fc8bff7b9e jshint fix. 2015-08-07 01:41:59 +01:00
Richard Davey
7588e123c7 Line.centerOn will position the Line so that its midpoint lays on the coordinates given. 2015-08-07 01:40:37 +01:00
Richard Davey
614b84e2ea * Line.rotateAround allows you to rotate a Line around the given coordinates (in world space)
* Point.rotate uses a faster and simpler rotation function when no distance argument is specified.
* Line.rotate used a calculation method which resulted in the line growing (or shrinking) in length over time, the more it was rotated. The new method never changes the lines length.
2015-08-07 01:35:31 +01:00
photonstorm
8e7b717a50 Line.midPoint will return a Point object where the x and y values correspond to the center (or midpoint) of the Line segment. 2015-08-06 17:10:39 +01:00
photonstorm
858ad51610 Phaser 2.4 release. 2015-07-22 15:31:30 +01:00
photonstorm
f15fe6706c All undefined argument checks were changed from if (typeof x === 'undefined') to if (x === undefined) removing the typeof check and saving some bytes across the codebase in the process. 2015-07-22 10:37:15 +01:00
photonstorm
732b80813e Line.rotate allows you to rotate a line by the given amount around its center point. 2015-06-13 05:20:43 +01:00
photonstorm
5f9bff0e8b Clarified the documentation for Point.rotate and fixed all the examples. 2015-06-13 05:02:07 +01:00
photonstorm
9e78cd1d7a Rectangle.random will return a uniformly distributed random point from anywhere within the rectangle. 2015-06-13 04:18:50 +01:00
photonstorm
77e7b2af9b Ellipse.random will return a uniformly distributed random point from anywhere within the ellipse. 2015-06-13 03:46:20 +01:00
photonstorm
3daea179fb Line.random will return a random point from anywhere on the Line segment. 2015-06-13 03:04:02 +01:00
photonstorm
9212c01dae Returns a random point from anywhere within this circle. 2015-06-12 19:15:56 +01:00
photonstorm
681d8679e7 Rectangle.resize allows you to resize a Rectangle to the new given dimensions without altering its position. 2015-06-11 06:01:29 +01:00
luckylooke
1939efd1c1 Copypaste typo
`Point.setTo(2, 2)` to `Point.set(2, 2)`
2015-05-20 14:21:35 +02:00
photonstorm
7b938f396e Rectangle.bottomLeft has been added (thanks @mattmogford #1788) 2015-05-12 13:03:26 +01:00
photonstorm
da0bd86c26 Rectangle.ceil runs Math.ceil() on both the x and y values of the Rectangle.
Rectangle.ceilAll runs Math.ceil() on the x, y, width and height values of the Rectangle.
2015-04-29 13:13:11 +01:00
photonstorm
8144c4910e jshint fixes. 2015-04-17 03:23:40 +01:00
photonstorm
1d8f88173d Phaser.Matrix.clone allows you to clone the Matrix to a new object, or copy its values into the given Matrix.
Phaser.Matrix.copyFrom and copyTo allow you to copy Matrix values from and to other Matrix  objects.

Phaser.Matrix.setTo allows you to set all properties of a Matrix in a single call.

The Phaser.Matrix constructor now allows you to optionally set all Matrix properties on instantiation.
2015-04-17 03:19:28 +01:00
photonstorm
67039df214 jsdoc fixes. 2015-03-27 10:47:25 +00:00
photonstorm
93ed950f89 Small geom tidy-up. 2015-03-25 11:04:31 +00:00
photonstorm
a69e53f901 Copyright date change. 2015-02-25 03:36:23 +00:00
photonstorm
eba1743404 jshint fixes. 2015-02-18 10:25:27 +00:00
photonstorm
f47fb7a7c7 jshint fixes. 2015-02-17 18:16:12 +00:00
photonstorm
819826ce08 Added Polygon.flatten and Polygon.toNumberArray.
Fixed Graphics.lineTo if no moveTo has been specified.
Fixed Graphics.drawShape if a mixed-type Polygon has been given.
2015-02-17 18:03:15 +00:00
photonstorm
97ebfce7a6 Fixed Matrix.apply. 2015-02-17 18:02:40 +00:00
photonstorm
e100f2f528 Added in type properties. 2015-02-17 16:38:07 +00:00
photonstorm
fa7fee99b6 Moved Matrix and RoundedRectangle into Phaser geom structure. 2015-02-17 15:49:30 +00:00
photonstorm
b68c3071a6 Phaser.Ellipse.contains is now working again (thanks @spayton) 2015-02-11 18:51:35 +00:00
photonstorm
689501c15c Phaser.Point.angleSq removed. It didn't work so any code relying on it would be broken, and it's unclear what it was meant for (thanks @nextht #1396) 2015-01-05 13:00:07 +00:00
photonstorm
fc63d0a33a Ellipse.right and Ellipse.bottom setters fixed (thanks @nextht #1397)
Fixed double Ellipse.getBounds definition (thanks @nextht #1397)
2015-01-05 12:36:35 +00:00
Richard Davey
cf83e14e8d Updated Line.reflect to remove intersects check.
Line.normalAngle gets the angle of the line normal in radians.
2015-01-04 12:38:40 +00:00
photonstorm
af15b9b4e7 Line.reflect will calculate the reflected, or outgoing angle of the line and a given line if they intersect. This can be used for Body vs. Line collision responses and rebounds.
Line.normalX and Line.normalY contain the x and y components of the left-hand normal of the line.
Line.fromAngle will sets this line to start at the given `x` and `y` coordinates and for the segment to extend at `angle` for the given `length`.
2015-01-04 05:11:19 +00:00
photonstorm
f23c0aa24b Removed redundant tolerance parameter from Rectangle.intersects (thanks @toolness #1463) 2014-12-17 13:25:21 +00:00
Paul
dab8772de0 Documentation - consistency updates
- Updated `readOnly` doclet to `readonly`

- `array` refined to `type[]`, where such information was immediately
determinable.

- Updated {Any}/{*} to {any}; {...*} is standard exception

- Udated {Object} to {object}
2014-11-30 04:03:35 -08:00
Richard Davey
7366854f9b Merge pull request #1307 from pnstickne/wip-math-util-cleanup
Math/Utils - various cleanup and deprecations/moves
2014-11-12 22:21:34 +00:00
Paul
a6d2da2a8a Math/Utils - various cleanup and deprecations/moves
There are no known breaking changes.

- Timer
  - Uses standard Math.min/Math.max (it's better 2, 3 items).

- Math
  - Updated documentation
  - Marked various Math functions as deprecated, proxying as appropriate
    - Array-based functions -> ArrayUtils
    - RNG-based functions -> Utils
    - Updated core-usage
    - floor/ceil should not be used (alternatives provided)
  - Altered for some equivalencies
  - Also fixes some assorted issues
  - Marked a few internal functions as private

- Utils
  - Moved polyfills to their own file for better visibility
  - Moved array functions to ArrayUtils and marked proxies as deprecated

- Created Phaser.ArrayUtils for array-related functions

- polyfills moved to their own file
  - Functions given function names
  - Added Math.trunc
2014-11-09 16:17:18 -08:00
Paul
24c4cf2be3 Merge remote-tracking branch 'upstream/dev' into wip-scalemanager
Conflicts:
	src/core/ScaleManager.js
2014-11-08 19:29:47 -08:00
Paul
f5b9d4067e ScaleManager: additional cleanup
- Added `compatibility` settings
  - CHANGE (2.1.2-4): moved `supportsFullScreen` and `noMargins` into it
  - Added additional properties for greater control and up-front settings.
    - `scrollTo`: where the browser will scrollTo, if anywhere
    - `forceMinimumDocumentHeight`: apply document element style?
    - `allowShowAllExpand`: allow SHOW_ALL to try to expand? (It already
      could, this allows configuration.)

- Removed `windowConstraints.top/left`. This may be a feature in the
  future, but scrubbed for now.

- Added `USER_SCALE` scale mode. This is like NO_SCALE but it scales off
  of a user-specified scale factor, as set by `setUserScale`. This is
  marked as "experimental" as the exactly semantics of non-adjusting modes
  (e.g. NO_SCALE and USER_SCALE) wrt. Canvas and "maximum" size clamps
  need to be re-examined.

- FIX: `onSizeChange` now works as documented, which means it is also
  fired if the game size changes even though the game canvas size does
  not.

- CHANGE (no known breaking): `margins` is now non-Point/non-Rectangle
  that uses top/left/bottom/right properties (any quasi-updated x/y). This
  is to get around the issue that Rectangle is only designed for positive
  width/height cases.

- Cleaned up property access / quotes for consistency

- Various documentation cleanup and consistency

- Fixed issue with not clearing an unparented `_createdFullScreenTarget`

- Added Phaser.Rectangle.sameDimensions which does a strict equality check
  over the `width` and `height` properties of two objects, perhaps
  Rectangles.
2014-11-08 18:17:30 -08:00
photonstorm
d9c4890882 Point.floor will Math.floor both the x and y values of the Point.
Point.ceil will Math.ceil both the `x` and `y` values of the Point.
2014-11-04 23:57:21 +00:00
photonstorm
98993365d4 Small refactor to pass jshint. 2014-10-29 07:46:56 +00:00
photonstorm
ce32d492af Phaser.Polygon has been refactored to address some Pixi v2 migration issues (thanks @pnstickne for the original implementation #1267)
Polygon.area is now only calculated when the Polygon points list is modified, rather than on every call.

Phaser.Polygon can now accept the points list in a variety of formats: Arrays of Points, numbers, objects with public x/y properties or any combination of, or as a parameter list (thanks @pnstickne for the original implementation #1267)

Polygon.contains now correctly calculates the result  (thanks @pnstickne @BurnedToast #1267)
2014-10-29 07:46:56 +00:00
Sebastian Bombitzky
1e3c7cfee7 Fixed return value of Polygon.contains
Polygon.contains was toggling the return value on each valid hit.
2014-10-28 14:04:33 +01:00
photonstorm
e14c6efbc3 Updated to support new Pixi style of points. 2014-10-22 23:52:46 +01:00
photonstorm
01a068f53c Rectangle.scale allows you to scale the width and height of a Rectangle. 2014-10-21 00:25:54 +01:00
photonstorm
1a357e18c8 Rectangle contains updates. 2014-10-20 14:28:09 +01:00
photonstorm
ac27f12c95 Fixes for Pixi update WebGL UV calls. 2014-10-11 04:18:42 +01:00
photonstorm
ab78710daa BitmapData.textureLine takes a Phaser.Line object and an image in the image cache. It then accurately draws the image as a repeating texture for the full length of the line. 2014-10-03 02:21:09 +01:00
Richard Davey
abe6f5ace2 Point.parse updated to allow either/or x/y setting and default values.
Point.parse will return a new Point object based on the x and y properties of the object given to Point.parse (thanks @codevinsky #1198)
2014-09-23 22:23:01 +01:00
Richard Davey
d7d69947fb Merge pull request #1198 from codevinsky/feature/point-parse
Phaser.Point.parse
2014-09-23 22:15:51 +01:00
Richard Davey
eb72e4c581 Fixing jsdoc headers. 2014-09-21 10:28:04 +01:00
Jeremy Dowell
ab9da10999 added: Rectangle.aabb
* Calculates the Axis Aligned Bounding Box (or aabb) from an array of points.
*
* @method Phaser.Rectangle#aabb
* @param {Phaser.Point[]} points - The array of one or more points.
* @param {Phaser.Rectangle} [out] - Optional Rectangle to store the value in, if not supplied a new Rectangle object will be created.
* @return {Phaser.Rectangle} The new Rectangle object.
* @static
2014-09-18 15:16:33 -05:00
Jeremy Dowell
29dd09fdf6 added: Phaser.Point.parse
static method that will take an object of any kind and return a new point based on the x & y properties of that object.

optional x & y property names can also be supplied
2014-09-17 14:23:28 -05:00
photonstorm
20551f9129 Lots of jsdocs fixes ready for the new doc generator. 2014-09-16 17:35:08 +01:00
Federico Omoto
0bdb0bdde5 Unnecessary "if" in Line.fromSprite method 2014-09-09 17:24:36 -03:00
Federico Omoto
471c2f444b Documentation fixes 2014-09-09 16:22:59 -03:00
photonstorm
4903e47a98 Rectangle.topRight returns a Point object that represents the top-right coordinate of the Rectangle. 2014-09-05 15:45:47 +01:00
photonstorm
cb14fd1c01 Rectangle.centerOn(x,y) allows you to quickly center a Rectangle on the given coordinates. 2014-09-05 04:13:21 +01:00
Richard Davey
168ce82fe8 Rectangle.bottom setter swapped the order of the calculation (thanks @JakeCoxon #1165) 2014-09-03 22:42:24 +01:00
Richard Davey
e8ca3a8d7b Merge pull request #1130 from beeglebug/feature/clone-consistency
Improved consistency of clone methods on geometry classes
2014-08-28 01:40:51 +01:00
Richard Davey
cc1c7948f3 Merge pull request #1125 from beeglebug/fix/#1095-rectangle-contains-rect
swapped argument order of Rectangle.containsRect - fixes #1095
2014-08-28 01:33:33 +01:00
Stuart Lee
8ef5c5e0de fixed arguments 2014-08-22 16:33:42 +01:00
beeglebug
bfd0b77fd4 typo 2014-08-21 22:50:09 +01:00
beeglebug
c85f4c04b0 may as well use the setter logic, saves duplicating code 2014-08-21 22:46:44 +01:00
beeglebug
2faab9b516 added clone and setTo functions 2014-08-21 22:45:10 +01:00
beeglebug
7ae5657113 extra null check on output to match rectangle 2014-08-21 22:44:40 +01:00
beeglebug
5930a90546 added clone function to Line 2014-08-21 22:36:40 +01:00
beeglebug
8c0a400d65 rename out to output to match others 2014-08-21 22:36:24 +01:00
beeglebug
a435191fd0 swapped argument order of Rectangle.containsRect - fixes #1095 2014-08-21 20:59:08 +01:00
Sandeep Nambiar
b25e2bd782 Sign Error 2014-08-13 05:49:39 +05:30
Sandeep Nambiar
daade10ecc Should fix the Error in rotation 2014-08-13 05:19:21 +05:30
photonstorm
4a429c3c1f Added null check to Rectangle.clone and size. 2014-07-10 14:46:09 +01:00
photonstorm
494c33a9f4 Rectangle.randomX will return a random value located within the horizontal bounds of the Rectangle.
Rectangle.randomY will return a random value located within the vertical bounds of the Rectangle.
2014-07-09 11:34:18 +01:00
photonstorm
5ee9245acf Rectangle.right when set would set the new width to be Rectangle.x + the value given. However the value given should be a new Right coordinate, so the width calculation has been adjusted to compensate (thanks @cryptonomicon, #849) 2014-07-02 05:37:12 +01:00
photonstorm
c71ca3b849 Updated some Rectangle docs. 2014-07-01 22:10:13 +01:00
Wouter Commandeur
5ebacd0b30 stop travis complaints 2014-06-23 22:59:47 +02:00
Wouter Commandeur
37dcfce628 fix checking of segment intersection no more rounding needed. 2014-06-23 20:25:47 +02:00
Wouter Commandeur
266eb10765 Fix Phaser.Line.intersectsPoints for floating point inaccuracy. Round the result to 3 decimals, should be enough precision and solves the problems.
See: http://www.html5gamedevs.com/topic/6840-phaserlineintersects-does-not-work-for-floats/
2014-05-31 12:13:59 +02:00
photonstorm
b2c68c1369 Graphics.drawTriangles will draw an array of vertices to the Graphics object (thanks @codevinsky, #795)
Polygon.area will calculate the area of the Polygon (thanks @codevinsky, #795)
2014-05-14 00:04:31 +01:00
Richard Davey
e3f834314e Merge pull request #795 from codevinsky/graphics-drawTriangles
Graphics.drawTriangles and Polygon.area
2014-05-13 23:43:16 +01:00
Richard Davey
570e8acabb Joystick updates. 2014-05-07 18:10:13 +01:00
Richard Davey
281e84ee9b Start of the Virtual Joystick plugin.
Fixes to Point.angle.
2014-05-07 16:35:08 +01:00
jdowell
f10c772ff3 Graphics.drawTriangles && Polygon.area
Demo:
http://phaser-triangles.herokuapp.com
2014-05-02 12:30:49 -05:00
Wouter Commandeur
cc102a1924 Fix Phaser.Line.intersectsPoints by properly checking the boundaries 2014-05-01 11:28:00 +02:00
Wouter Commandeur
fbd6d9c33e Fix pointOnLine
Corrected algorithm via: http://stackoverflow.com/questions/11907947/how-to-check-if-a-point-lays-on-a-line-between-2-provided-points
2014-04-30 11:50:01 +02:00
photonstorm
f15c17ba41 jshint fixes 2014-04-27 12:10:29 +01:00
photonstorm
6e5415fc31 Point.interpolate - Interpolates the two given Points, based on the f value (between 0 and 1) and returns a new Point. 2014-04-27 11:16:06 +01:00
photonstorm
8dd67ea6ec Point.dot - get the dot product of two Point objects.
Point.cross - get the cross product of two Point objects.
Point.cross - get the cross product of two Point objects.
Point.perp - make the Point perpendicular (90 degrees rotation)
Point.rperp - make the Point perpendicular (-90 degrees rotation)
Point.normalRightHand - Right-hand normalize (make unit length) a Point.
Point.angle - Returns the angle between this Point object and another object with public x and y properties.
Point.angleSq - Returns the angle squared between this Point object and another object with public x and y properties.
Point.getMagnitudeSq - Calculates the length squared of the Point object.
Point.project - Project two Points onto another Point.
Point.projectUnit - Project two Points onto a Point of unit length.
Point.multiplyAdd - Adds two 2D Points together and multiplies the result by the given scalar.
Point.negative - Creates a negative Point.
2014-04-27 11:09:57 +01:00
photonstorm
7a64f53006 Fixed Polygon.contains for coordinates to the left of the polygon (thanks @vilcans, fix #766) 2014-04-27 09:56:29 +01:00
photonstorm
2cba2a0e2b Point.dot - get the dot product of two Point objects.
Point.cross - get the cross product of two Point objects.
Point.cross - get the cross product of two Point objects.
Point.perp - make the Point perpendicular (90 degrees rotation)
Point.rperp - make the Point perpendicular (-90 degrees rotation)
2014-04-26 20:35:31 +01:00
photonstorm
6ace9e6031 Made jsdocs clear that Point.set/setTo 2nd parameter is optional (fix #743) 2014-04-22 02:02:56 +01:00
photonstorm
f3922002a1 Circle.distance used an incorrect Math call if you wanted a rounded distance value (thanks @OpherV, fix #745)
Point.distance used an incorrect Math call if you wanted a rounded distance value (thanks @OpherV, fix #745)
2014-04-22 01:52:24 +01:00
John Watson
27bdbbafaa Fixed Math.atan2 arguments in wrong order
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/atan2
2014-04-14 17:14:31 -07:00
photonstorm
b6ad11701e Various jshint fixes. 2014-04-01 01:30:20 +01:00