Commit graph

273 commits

Author SHA1 Message Date
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
Lewis Lane
1d1e47d68d Update Point.js 2014-03-31 16:03:18 +01:00
Lewis Lane
14b16fb583 Update Point.js 2014-03-31 16:01:35 +01:00
Lewis Lane
c5629008e9 Updated Phaser.Point.centroid function.
Performance boosts and bugfix with averaging.
2014-03-31 16:00:55 +01:00
Lewis Lane
5e2e520e26 Added Phaser.Point.centroid function.
Added static Phaser.Point.centroid function to calculate the centroid or midpoint of an array of points.
2014-03-31 15:21:40 +01:00
Christian Wesselhoeft
04d88b6c35 Fix jshint issues in src/geom 2014-03-25 14:56:05 -07:00
Christian Wesselhoeft
61f18b675c Trim trailing whitespace. 2014-03-25 14:56:04 -07:00
photonstorm
344ab46d78 Line.fromSprite now sets "fromCenter" to false by default as Sprite.center is deprecated in 2.x. Documentation and Examples updated to reflect this. 2014-03-25 12:44:20 +00:00
photonstorm
901a7f13d1 Updated docs for 2.0 release and updated README. 2014-03-14 06:36:05 +00:00
photonstorm
017a017b96 TilemapLayer.getRayCastTiles will let you get all tiles that hit the given line for further processing.
Fixed Tilemap collision. Added new TILE_BIAS const to aid with fast/small sprites.
2014-03-14 02:33:58 +00:00
photonstorm
f678d1fd31 Line now has x, y, width, height, top, bottom, left and right properties, so you can effectively get its bounds. 2014-03-14 00:19:45 +00:00
photonstorm
a83a76bc5d Line.coordinatesOnLine will return all coordinates on the line using Bresenhams line algorithm. 2014-03-14 00:05:03 +00:00
photonstorm
c8e63582a4 Lots of small tweaks to pass jshint. 2014-03-13 16:49:52 +00:00
photonstorm
22b1ce9b9d Added Phasers new Physics Manager and restored the pre-1.1.4 ArcadePhysics system. The new manager can handle multiple physics systems running in parallel, which could be extremely useful for lots of games. 2014-03-05 02:36:08 +00:00
photonstorm
9fcab5ef26 Lots of doc fixes (thanks nhowell) 2014-02-20 03:44:44 +00:00
photonstorm
08e5f18257 Fixed some doc typos.
You can now pass a physicsConfig object with the game constructor that is given to p2.World, allowing you to set the broadphase, etc.
2014-02-19 03:51:48 +00:00
photonstorm
d44775c095 Phaser.Ellipse added. A fully compatible port of the PIXI.Ellipse class, can be used in Sprite/Image hitArea tests.
Phaser.Polygon added. A fully compatible port of the PIXI.Polygon class, can be used in Sprite/Image hitArea tests.
2014-02-10 01:37:50 +00:00
photonstorm
f9f2f2a9ae Converted the Pixi.Ellipse class. 2014-02-10 01:18:53 +00:00
photonstorm
bc3a3fd43d You can now use the hitArea property on Sprites and Image objects. hitArea can be a geometry object (Rectangle, Circle, Polygon, Ellipse) and is used in pointerOver checks. 2014-02-07 17:14:10 +00:00
photonstorm
ddc255382d Updated Rectangle to use prototype based getters and setters (re: iOS speed discussion on the forum). 2014-02-07 02:31:29 +00:00
photonstorm
e88b10323a Updated Phaser geometry classes so they over-ride the PIXI native ones, means we can do away with a whole bunch of over-rides and object changes in Sprite, etc. 2014-02-06 12:29:07 +00:00
photonstorm
0896c2fac7 Updating copyright year and README. 2014-02-05 16:54:59 +00:00
photonstorm
8e77e8cedb Lots of TypeScript defs updates for the new Physics / Body classes. 2014-02-05 16:54:58 +00:00
photonstorm
45b6d5a741 Removed: Debug.renderSpriteTouching, Debug.renderLocalTransformInfo, Debug.renderWorldTransformInfo, Debug.renderSpriteCollision and Debug.dumpLinkedList.
Debug.renderPhysicsBody(body, color) is extremely useful for debugging the new physics bodies. Will draw the outline + points in the color given.
Debug.renderBodyInfo(sprite, x, y, color) will display lots of Sprite body data.
2014-01-31 05:42:20 +00:00
photonstorm
651858372c Added Game core loop stepping support. Super-useful for debugging, and helped me track down the issue with jittery physics collision. Double-win! 2014-01-29 17:10:13 +00:00
photonstorm
d51a37211c Phaser.Line added to the group of geometry classes, with full point on line/segment and intersection tests (see new examples) 2014-01-29 00:21:28 +00:00
photonstorm
82cb66f47b Updated intersects code, tilemap collision is running again. Still finding gravity pushing sprites through tiles. 2014-01-28 06:52:56 +00:00
photonstorm
ce4cf531d4 Added class constructors, fixed Stripshader, added relative Tween example and updated Tween source. 2013-12-30 16:54:00 +00:00
photonstorm
1f513a333e Fixed an issue where passing null as the Group parent wouldn't set it to game.world as it should have (thanks tito100).
Continued work on the tilemap collision - again, please don't use this version if you need working tilemaps.
2013-12-06 01:07:25 +00:00
photonstorm
299115ca5d The entire Phaser library has been updated to match the new JSHint configuration. 2013-11-25 04:40:04 +00:00
photonstorm
13a2cc2feb Updating all files to adhere to the JSHint settings and fixing lots of documentation errors on the way. 2013-11-25 03:13:04 +00:00
Richard Davey
6a24d6116b Lots of renderTexture updates and examples added 2013-11-13 06:49:24 +00:00
photonstorm
3f99b691c9 Added in a Group.sort demo, also updated the documentation and build files. 2013-11-07 06:10:15 +00:00
Román Jiménez
35dd98c72f Added some docstring to the Polygon class 2013-11-05 20:31:33 +01:00
Román Jiménez
06e33bc8e4 Polygon & drawPolygon method 2013-11-05 20:25:06 +01:00
Stuart Lee
903c2e73fa added getMagnitude, setMagnitude, normalize and isZero methods to Point 2013-10-31 14:11:03 +00:00
photonstorm
1f28d328a7 Commit before refactoring Sprite guts. 2013-10-24 21:21:00 +01:00
photonstorm
a6fac64248 Loads of issues reported on Github resolved (sprite crop, music resume, etc). 2013-10-24 04:27:28 +01:00
photonstorm
a97f271de7 Fixed Animation index 0 issue and hooked TilemapLayer to camera. 2013-10-16 02:09:12 +01:00
photonstorm
fd5eeb9088 Fixed Rectangle intersection issue and tilemap collision is working again. Win! 2013-10-15 15:24:07 +01:00
photonstorm
83a00862be Lots of new examples and updates. 2013-10-09 04:31:08 +01:00
Richard Davey
852e82d0ca More docs. 2013-10-02 12:11:22 +01:00
Richard Davey
ca113b85aa More docs coming on. 2013-10-01 16:39:39 +01:00
Richard Davey
305b12d76b Adding docs. 2013-10-01 15:01:46 +01:00
Richard Davey
257cbe3be8 Much more stable collision, just need to refactor the Tilemap handling - see if I can optimise it a bit too. 2013-09-23 03:26:08 +01:00
Richard Davey
d9a49797c4 1.0.4 release 2013-09-18 06:34:56 +01:00
Richard Davey
f260108433 Tidying up source code for release. Also refactored World to use a Group instance, rather tha duplicate functions. 2013-09-11 13:21:07 +01:00
Richard Davey
e41e35fd09 Fixed an error that stopped 2 tweens from being able to run on the same object. Also refactored a lot of the classes to remove prototype properties and move them to local instance properties. 2013-09-10 20:40:34 +01:00
Richard Davey
128bdccd79 Sorted out the QuadTree issues and resolved a small but vital bug in separateX, also re-organised the collision flags in Body. 2013-09-04 13:54:55 +01:00
Richard Davey
bdc1c2ceb9 Sorted out the bounds for when sprites are in trimmed texture atlases to stop the physics checks going insane. Also bundled in Advanced Physics lib, although not hooked up yet. 2013-09-03 15:35:40 +01:00
Richard Davey
d31777972c Camera culling 2013-09-01 19:52:50 +01:00
Richard Davey
99e0934244 More late-night math. 2013-09-01 02:28:51 +01:00
Richard Davey
22847f6ade DebugUtils converted, re-name spaced the Input classes and started on Camera culling. 2013-08-31 21:50:34 +01:00
Richard Davey
6bf7bab917 Fixed some errors in Rectangle and more Pixi hooks added, now creating the Stage properly and rendering sprites. 2013-08-29 19:20:04 +01:00
Richard Davey
8a09469798 Final methods added. 2013-08-28 19:18:34 +01:00
Richard Davey
9289f690eb Rectangle mostly done, needs the prototype functions adding and some test cases made. 2013-08-28 17:19:13 +01:00
Richard Davey
89fe2855e4 Fixed a few things in Circle and added the Point object. 2013-08-28 15:58:37 +01:00
Richard Davey
0f58945212 Circle and Math converted 2013-08-28 15:27:22 +01:00