lyb-pixi-js 1.4.1 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,16 @@
1
1
  import { type Application } from "pixi.js";
2
+ export interface LibPixiPolygonDrawToolParams {
3
+ /** 输出的数组内容格式 */
4
+ outFormat?: "object" | "number";
5
+ /** 圆点半径 */
6
+ dotRadius?: number;
7
+ /** 圆点颜色 */
8
+ dotColor?: string | number;
9
+ /** 多边形颜色 */
10
+ polygonColor?: string | number;
11
+ /** 多边形透明度 */
12
+ polygonAlpha?: number;
13
+ }
2
14
  /** @description 多边形绘制工具,绘制时浏览器窗口需要全屏显示,空格键控制开始和结束,开始后鼠标进行点击绘制,退格删除点,空格结束绘制,绘制结果在控制台打印,不满意可再次按空格清空并重新绘制
3
15
  * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiPolygonDrawTool-多边形绘制
4
16
  */
@@ -17,7 +29,9 @@ export declare class LibPixiPolygonDrawTool {
17
29
  private _realPoints;
18
30
  /** 点元素 */
19
31
  private _pointElements;
20
- constructor(app: Application);
32
+ /** 参数 */
33
+ private _params;
34
+ constructor(app: Application, params?: LibPixiPolygonDrawToolParams);
21
35
  private _setupListeners;
22
36
  /** @description 控制绘制开始和结束 */
23
37
  private toggleDrawing;
@@ -3,7 +3,7 @@ import { Graphics, } from "pixi.js";
3
3
  * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiPolygonDrawTool-多边形绘制
4
4
  */
5
5
  export class LibPixiPolygonDrawTool {
6
- constructor(app) {
6
+ constructor(app, params = {}) {
7
7
  /** 是否正在绘制 */
8
8
  this._drawing = false;
9
9
  /** 储点的数组 */
@@ -15,6 +15,7 @@ export class LibPixiPolygonDrawTool {
15
15
  /** 点元素 */
16
16
  this._pointElements = [];
17
17
  this._app = app;
18
+ this._params = Object.assign({ outFormat: "number", dotRadius: 2, dotColor: "#fff", polygonColor: "#68CCFF", polygonAlpha: 0.5 }, params);
18
19
  this._app.stage.sortableChildren = true;
19
20
  this._polygon = new Graphics();
20
21
  this._app.stage.addChild(this._polygon);
@@ -44,12 +45,17 @@ export class LibPixiPolygonDrawTool {
44
45
  /** @description 控制绘制开始和结束 */
45
46
  toggleDrawing() {
46
47
  if (this._drawing) {
47
- console.warn("绘制结束");
48
+ alert("绘制结束");
48
49
  this._points.push({ x: 0, y: 0 });
49
- console.log(this._points.flat());
50
+ if (this._params.outFormat === "object") {
51
+ console.log(this._points);
52
+ }
53
+ else {
54
+ console.log(this._points.map((item) => [item.x, item.y]).flat());
55
+ }
50
56
  }
51
57
  else {
52
- console.warn("开始绘制");
58
+ alert("开始绘制");
53
59
  this._startPoint = [];
54
60
  this._points = [];
55
61
  this._realPoints = [];
@@ -84,10 +90,10 @@ export class LibPixiPolygonDrawTool {
84
90
  /** @description 绘制多边形 */
85
91
  _drawPolygon() {
86
92
  this._polygon.clear();
87
- this._polygon.beginFill(0x66ccff);
93
+ this._polygon.beginFill(this._params.polygonColor);
88
94
  this._polygon.drawPolygon(this._realPoints);
89
95
  this._polygon.endFill();
90
- this._polygon.alpha = 0.5;
96
+ this._polygon.alpha = this._params.polygonAlpha;
91
97
  //渲染点
92
98
  this._pointElements.forEach((point) => point.destroy());
93
99
  this._pointElements = [];
@@ -98,10 +104,9 @@ export class LibPixiPolygonDrawTool {
98
104
  /** @description 绘制一个点 */
99
105
  _drawDot(x, y) {
100
106
  const pointElement = new Graphics();
101
- pointElement.beginFill(0xff0000);
102
- pointElement.drawCircle(x, y, 5);
107
+ pointElement.beginFill(this._params.dotColor);
108
+ pointElement.drawCircle(x, y, this._params.dotRadius || 2);
103
109
  pointElement.endFill();
104
- pointElement.alpha = 0.5;
105
110
  this._app.stage.addChild(pointElement);
106
111
  pointElement.zIndex = 999999;
107
112
  return pointElement;