Class: Phaser.Line
Constructor
new Line(x1, y1, x2, y2)
Creates a new Line object with a start and an end point.
Parameters
Name | Type | Argument | Default | Description |
---|---|---|---|---|
x1 | number | <optional> | 0 | The x coordinate of the start of the line. |
y1 | number | <optional> | 0 | The y coordinate of the start of the line. |
x2 | number | <optional> | 0 | The x coordinate of the end of the line. |
y2 | number | <optional> | 0 | The y coordinate of the end of the line. |
- Source code: geom/Line.js (Line 17)
Public Properties
- Source code: geom/Line.js (Line 372)
- Source code: geom/Line.js (Line 476)
- Source code: geom/Line.js (Line 32)
- Source code: geom/Line.js (Line 502)
- Source code: geom/Line.js (Line 437)
- Source code: geom/Line.js (Line 359)
- Source code: geom/Line.js (Line 541)
- Source code: geom/Line.js (Line 515)
- Source code: geom/Line.js (Line 528)
- Source code: geom/Line.js (Line 398)
- Source code: geom/Line.js (Line 450)
- Source code: geom/Line.js (Line 385)
- Source code: geom/Line.js (Line 27)
- Source code: geom/Line.js (Line 463)
- Source code: geom/Line.js (Line 38)
- Source code: geom/Line.js (Line 489)
- Source code: geom/Line.js (Line 411)
- Source code: geom/Line.js (Line 424)
[readonly] angle : number
Gets the angle of the line in radians.
[readonly] bottom : number
Gets the bottom-most point of this line.
end : Phaser.Point
The end point of the line.
[readonly] height : number
Gets the height of this bounds of this line.
[readonly] left : number
Gets the left-most point of this line.
[readonly] length : number
Gets the length of the line segment.
[readonly] normalAngle : number
Gets the angle in radians of the normal of this line (line.angle - 90 degrees.)
[readonly] normalX : number
Gets the x component of the left-hand normal of this line.
[readonly] normalY : number
Gets the y component of the left-hand normal of this line.
[readonly] perpSlope : number
Gets the perpendicular slope of the line (x/y).
[readonly] right : number
Gets the right-most point of this line.
[readonly] slope : number
Gets the slope of the line (y/x).
start : Phaser.Point
The start point of the line.
[readonly] top : number
Gets the top-most point of this line.
[readonly] type : number
The const type of this object.
[readonly] width : number
Gets the width of this bounds of this line.
[readonly] x : number
Gets the x coordinate of the top left of the bounds around this line.
[readonly] y : number
Gets the y coordinate of the top left of the bounds around this line.
Public Methods
- Source code: geom/Line.js (Line 610)
- Source code: geom/Line.js (Line 554)
- Source code: geom/Line.js (Line 630)
- Source code: geom/Line.js (Line 722)
- Source code: geom/Line.js (Line 200)
- Source code: geom/Line.js (Line 336)
- Source code: geom/Line.js (Line 278)
- Source code: geom/Line.js (Line 86)
- Source code: geom/Line.js (Line 63)
- Source code: geom/Line.js (Line 151)
- Source code: geom/Line.js (Line 182)
- Source code: geom/Line.js (Line 224)
- Source code: geom/Line.js (Line 238)
- Source code: geom/Line.js (Line 257)
- Source code: geom/Line.js (Line 168)
- Source code: geom/Line.js (Line 105)
- Source code: geom/Line.js (Line 130)
- Source code: geom/Line.js (Line 44)
<static> intersects(a, b, asSegment, result) → {Phaser.Point}
Checks for intersection between two lines.
If asSegment is true it will check for segment intersection.
If asSegment is false it will check for line intersection.
Returns the intersection segment of AB and EF as a Point, or null if there is no intersection.
Adapted from code by Keith Hair
Parameters
Name | Type | Argument | Default | Description |
---|---|---|---|---|
a | Phaser.Line | The first Line to be checked. | ||
b | Phaser.Line | The second Line to be checked. | ||
asSegment | boolean | <optional> | true | If true it will check for segment intersection, otherwise full line intersection. |
result | Phaser.Point | <optional> | A Point object to store the result in, if not given a new one will be created. |
Returns
The intersection segment of the two lines as a Point, or null if there is no intersection.
<static> intersectsPoints(a, b, e, f, asSegment, result) → {Phaser.Point}
Checks for intersection between two lines as defined by the given start and end points.
If asSegment is true it will check for line segment intersection. If asSegment is false it will check for line intersection.
Returns the intersection segment of AB and EF as a Point, or null if there is no intersection.
Adapted from code by Keith Hair
Parameters
Name | Type | Argument | Default | Description |
---|---|---|---|---|
a | Phaser.Point | The start of the first Line to be checked. | ||
b | Phaser.Point | The end of the first line to be checked. | ||
e | Phaser.Point | The start of the second Line to be checked. | ||
f | Phaser.Point | The end of the second line to be checked. | ||
asSegment | boolean | <optional> | true | If true it will check for segment intersection, otherwise full line intersection. |
result | Phaser.Point | object | <optional> | A Point object to store the result in, if not given a new one will be created. |
Returns
The intersection segment of the two lines as a Point, or null if there is no intersection.
<static> intersectsRectangle(line, rect) → {boolean}
Checks for intersection between the Line and a Rectangle shape, or a rectangle-like
object, with public x
, y
, right
and bottom
properties, such as a Sprite or Body.
An intersection is considered valid if:
The line starts within, or ends within, the Rectangle.
The line segment intersects one of the 4 rectangle edges.
The for the purposes of this function rectangles are considered 'solid'.
Parameters
Name | Type | Description |
---|---|---|
line | Phaser.Line | The line to check for intersection with. |
rect | Phaser.Rectangle | object | The rectangle, or rectangle-like object, to check for intersection with. |
Returns
True if the line intersects with the rectangle edges, or starts or ends within the rectangle.
<static> reflect(a, b) → {number}
Returns the reflected angle between two lines.
This is the outgoing angle based on the angle of Line 1 and the normalAngle of Line 2.
Parameters
Name | Type | Description |
---|---|---|
a | Phaser.Line | The base line. |
b | Phaser.Line | The line to be reflected from the base line. |
Returns
The reflected angle in radians.
centerOn(x, y) → {Phaser.Line}
Centers this Line on the given coordinates.
The line is centered by positioning the start and end points so that the lines midpoint matches
the coordinates given.
Parameters
Name | Type | Description |
---|---|---|
x | number | The x position to center the line on. |
y | number | The y position to center the line on. |
Returns
This line object
clone(output) → {Phaser.Line}
Returns a new Line object with the same values for the start and end properties as this Line object.
Parameters
Name | Type | Description |
---|---|---|
output | Phaser.Line | Optional Line object. If given the values will be set into the object, otherwise a brand new Line object will be created and returned. |
Returns
The cloned Line object.
coordinatesOnLine(stepRate, results) → {array}
Using Bresenham's line algorithm this will return an array of all coordinates on this line.
The start and end points are rounded before this runs as the algorithm works on integers.
Parameters
Name | Type | Argument | Default | Description |
---|---|---|---|---|
stepRate | number | <optional> | 1 | How many steps will we return? 1 = every coordinate on the line, 2 = every other coordinate, etc. |
results | array | <optional> | The array to store the results in. If not provided a new one will be generated. |
Returns
An array of coordinates.
fromAngle(x, y, angle, length) → {Phaser.Line}
Sets this line to start at the given x
and y
coordinates and for the segment to extend at angle
for the given length
.
Parameters
Name | Type | Description |
---|---|---|
x | number | The x coordinate of the start of the line. |
y | number | The y coordinate of the start of the line. |
angle | number | The angle of the line in radians. |
length | number | The length of the line in pixels. |
Returns
This line object
fromSprite(startSprite, endSprite, useCenter) → {Phaser.Line}
Sets the line to match the x/y coordinates of the two given sprites.
Can optionally be calculated from their center coordinates.
Parameters
Name | Type | Argument | Default | Description |
---|---|---|---|---|
startSprite | Phaser.Sprite | The coordinates of this Sprite will be set to the Line.start point. | ||
endSprite | Phaser.Sprite | The coordinates of this Sprite will be set to the Line.start point. | ||
useCenter | boolean | <optional> | false | If true it will use startSprite.center.x, if false startSprite.x. Note that Sprites don't have a center property by default, so only enable if you've over-ridden your Sprite with a custom class. |
Returns
This line object
intersects(line, asSegment, result) → {Phaser.Point}
Checks for intersection between this line and another Line.
If asSegment is true it will check for segment intersection. If asSegment is false it will check for line intersection.
Returns the intersection segment of AB and EF as a Point, or null if there is no intersection.
Parameters
Name | Type | Argument | Default | Description |
---|---|---|---|---|
line | Phaser.Line | The line to check against this one. | ||
asSegment | boolean | <optional> | true | If true it will check for segment intersection, otherwise full line intersection. |
result | Phaser.Point | <optional> | A Point object to store the result in, if not given a new one will be created. |
Returns
The intersection segment of the two lines as a Point, or null if there is no intersection.
midPoint(out) → {Phaser.Point}
Returns a Point object where the x and y values correspond to the center (or midpoint) of the Line segment.
Parameters
Name | Type | Argument | Description |
---|---|---|---|
out | Phaser.Point | <optional> | A Phaser.Point object into which the result will be populated. If not given a new Point object is created. |
Returns
A Phaser.Point object with the x and y values set to the center of the line segment.
pointOnLine(x, y) → {boolean}
Tests if the given coordinates fall on this line. See pointOnSegment to test against just the line segment.
Parameters
Name | Type | Description |
---|---|---|
x | number | The line to check against this one. |
y | number | The line to check against this one. |
Returns
True if the point is on the line, false if not.
pointOnSegment(x, y) → {boolean}
Tests if the given coordinates fall on this line and within the segment. See pointOnLine to test against just the line.
Parameters
Name | Type | Description |
---|---|---|
x | number | The line to check against this one. |
y | number | The line to check against this one. |
Returns
True if the point is on the line and segment, false if not.
random(out) → {Phaser.Point}
Picks a random point from anywhere on the Line segment and returns it.
Parameters
Name | Type | Argument | Description |
---|---|---|---|
out | Phaser.Point | object | <optional> | A Phaser.Point, or any object with public x/y properties, that the values will be set in. |
Returns
An object containing the random point in its x
and y
properties.
reflect(line) → {number}
Returns the reflected angle between two lines.
This is the outgoing angle based on the angle of this line and the normalAngle of the given line.
Parameters
Name | Type | Description |
---|---|---|
line | Phaser.Line | The line to reflect off this line. |
Returns
The reflected angle in radians.
rotate(angle, asDegrees) → {Phaser.Line}
Rotates the line by the amount specified in angle
.
Rotation takes place from the center of the line.
If you wish to rotate around a different point see Line.rotateAround.
If you wish to rotate the ends of the Line then see Line.start.rotate or Line.end.rotate.
Parameters
Name | Type | Argument | Default | Description |
---|---|---|---|---|
angle | number | The angle in radians (unless asDegrees is true) to rotate the line by. | ||
asDegrees | boolean | <optional> | false | Is the given angle in radians (false) or degrees (true)? |
Returns
This line object
rotateAround(x, y, angle, asDegrees) → {Phaser.Line}
Rotates the line by the amount specified in angle
.
Rotation takes place around the coordinates given.
Parameters
Name | Type | Argument | Default | Description |
---|---|---|---|---|
x | number | The x coordinate to offset the rotation from. | ||
y | number | The y coordinate to offset the rotation from. | ||
angle | number | The angle in radians (unless asDegrees is true) to rotate the line by. | ||
asDegrees | boolean | <optional> | false | Is the given angle in radians (false) or degrees (true)? |
Returns
This line object
setTo(x1, y1, x2, y2) → {Phaser.Line}
Sets the components of the Line to the specified values.
Parameters
Name | Type | Argument | Default | Description |
---|---|---|---|---|
x1 | number | <optional> | 0 | The x coordinate of the start of the line. |
y1 | number | <optional> | 0 | The y coordinate of the start of the line. |
x2 | number | <optional> | 0 | The x coordinate of the end of the line. |
y2 | number | <optional> | 0 | The y coordinate of the end of the line. |
Returns
This line object
© 2016 Richard Davey, Photon Storm Ltd.
Licensed under the MIT License.
http://phaser.io/docs/2.6.2/Phaser.Line.html