phaser/v3/src/components/GetBounds.js

66 lines
1.4 KiB
JavaScript
Raw Normal View History

var GetBounds = {
2016-12-07 01:40:56 +00:00
getBounds: function ()
2016-12-07 01:40:56 +00:00
{
var r = this.rotation;
2016-12-07 01:40:56 +00:00
var wct = this.width * Math.cos(r);
var hct = this.height * Math.cos(r);
var wst = this.width * Math.sin(r);
var hst = this.height * Math.sin(r);
2016-12-07 01:40:56 +00:00
var x = this.x;
var y = this.y;
2016-12-07 01:40:56 +00:00
var xMin = x;
var xMax = x;
var yMin = y;
var yMax = y;
2016-12-07 01:40:56 +00:00
if (r > 0)
{
if (r < 1.5707963267948966)
{
// 0 < theta < 90
yMax = y + hct + wst;
xMin = x - hst;
xMax = x + wct;
}
else
{
// 90 <= theta <= 180
yMin = y + hct;
yMax = y + wst;
xMin = x - hst + wct;
}
}
else
{
if (r > -1.5707963267948966)
{
// -90 < theta <= 0
yMin = y + wst;
yMax = y + hct;
xMax = x + wct - hst;
}
else
{
// -180 <= theta <= -90
yMin = y + wst + hct;
xMin = x + wct;
xMax = x - hst;
}
}
2016-12-07 01:40:56 +00:00
return {
x: xMin,
y: yMin,
width: xMax - xMin,
height: yMax - yMin
};
}
2016-12-07 01:40:56 +00:00
};
module.exports = GetBounds;