UNPKG

phaser4-rex-plugins

Version:
43 lines (31 loc) 1.23 kB
import Triangulate from '../../delaunay/Triangulate.js'; const GetValue = Phaser.Utils.Objects.GetValue; const Rectangle = Phaser.Geom.Rectangle; var RectangleToTriangles = function (config) { var rectangle = config.rectangle; if (!rectangle) { rectangle = new Rectangle(0, 0, config.width, config.height); } var total = GetValue(config, 'amount', 10); var triangleOutput = GetValue(config, 'triangleOutput', true); var totalPoints = Math.ceil(total / 2) + 3; var points = Phaser.Geom.Rectangle.Decompose(rectangle); var width = rectangle.width, height = rectangle.height; InnerRectangle.setTo( rectangle.x + width * 0.05, rectangle.y + height * 0.05, width * 0.9, height * 0.9 ); for (var i = 0, cnt = totalPoints - points.length; i < cnt; i++) { points.push(InnerRectangle.getRandomPoint()); } var vertices = []; for (var i = 0, cnt = points.length; i < cnt; i++) { var point = points[i]; vertices.push([point.x, point.y]); } return Triangulate(vertices, triangleOutput); } var InnerRectangle = new Rectangle(); export default RectangleToTriangles;