mirror of
https://github.com/photonstorm/phaser
synced 2024-12-03 18:10:10 +00:00
108 lines
3.3 KiB
JavaScript
108 lines
3.3 KiB
JavaScript
/**
|
|
* @author Mat Groves http://matgroves.com/
|
|
* @author Richard Davey <rich@photonstorm.com>
|
|
* @copyright 2016 Photon Storm Ltd.
|
|
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
|
|
*/
|
|
|
|
/**
|
|
* The Rounded Rectangle object is an area defined by its position and has nice rounded corners,
|
|
* as indicated by its top-left corner point (x, y) and by its width and its height.
|
|
*
|
|
* @class Phaser.RoundedRectangle
|
|
* @constructor
|
|
* @param {number} [x=0] - The x coordinate of the top-left corner of the Rectangle.
|
|
* @param {number} [y=0] - The y coordinate of the top-left corner of the Rectangle.
|
|
* @param {number} [width=0] - The width of the Rectangle. Should always be either zero or a positive value.
|
|
* @param {number} [height=0] - The height of the Rectangle. Should always be either zero or a positive value.
|
|
* @param {number} [radius=20] - Controls the radius of the rounded corners.
|
|
*/
|
|
Phaser.RoundedRectangle = function(x, y, width, height, radius)
|
|
{
|
|
if (x === undefined) { x = 0; }
|
|
if (y === undefined) { y = 0; }
|
|
if (width === undefined) { width = 0; }
|
|
if (height === undefined) { height = 0; }
|
|
if (radius === undefined) { radius = 20; }
|
|
|
|
/**
|
|
* @property {number} x - The x coordinate of the top-left corner of the Rectangle.
|
|
*/
|
|
this.x = x;
|
|
|
|
/**
|
|
* @property {number} y - The y coordinate of the top-left corner of the Rectangle.
|
|
*/
|
|
this.y = y;
|
|
|
|
/**
|
|
* @property {number} width - The width of the Rectangle. This value should never be set to a negative.
|
|
*/
|
|
this.width = width;
|
|
|
|
/**
|
|
* @property {number} height - The height of the Rectangle. This value should never be set to a negative.
|
|
*/
|
|
this.height = height;
|
|
|
|
/**
|
|
* @property {number} radius - The radius of the rounded corners.
|
|
*/
|
|
this.radius = radius || 20;
|
|
|
|
/**
|
|
* @property {number} type - The const type of this object.
|
|
* @readonly
|
|
*/
|
|
this.type = Phaser.ROUNDEDRECTANGLE;
|
|
};
|
|
|
|
Phaser.RoundedRectangle.prototype.constructor = Phaser.RoundedRectangle;
|
|
|
|
Phaser.RoundedRectangle.prototype = {
|
|
|
|
/**
|
|
* Returns a new RoundedRectangle object with the same values for the x, y, width, height and
|
|
* radius properties as this RoundedRectangle object.
|
|
*
|
|
* @method Phaser.RoundedRectangle#clone
|
|
* @return {Phaser.RoundedRectangle}
|
|
*/
|
|
clone: function () {
|
|
|
|
return new Phaser.RoundedRectangle(this.x, this.y, this.width, this.height, this.radius);
|
|
|
|
},
|
|
|
|
/**
|
|
* Determines whether the specified coordinates are contained within the region defined by this Rounded Rectangle object.
|
|
*
|
|
* @method Phaser.RoundedRectangle#contains
|
|
* @param {number} x - The x coordinate of the point to test.
|
|
* @param {number} y - The y coordinate of the point to test.
|
|
* @return {boolean} A value of true if the RoundedRectangle Rectangle object contains the specified point; otherwise false.
|
|
*/
|
|
contains: function (x, y) {
|
|
|
|
if (this.width <= 0 || this.height <= 0)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
var x1 = this.x;
|
|
|
|
if (x >= x1 && x <= x1 + this.width)
|
|
{
|
|
var y1 = this.y;
|
|
|
|
if (y >= y1 && y <= y1 + this.height)
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
};
|