@esengine/ecs-framework-math 1.0.3 → 2.8.0

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.
Files changed (60) hide show
  1. package/LICENSE +21 -0
  2. package/bin/Animation/Easing.d.ts +150 -150
  3. package/bin/Animation/Easing.d.ts.map +1 -1
  4. package/bin/Animation/Easing.js +151 -151
  5. package/bin/Animation/Easing.js.map +1 -1
  6. package/bin/Animation/Interpolation.d.ts +102 -102
  7. package/bin/Animation/Interpolation.d.ts.map +1 -1
  8. package/bin/Animation/Interpolation.js +104 -104
  9. package/bin/Animation/Interpolation.js.map +1 -1
  10. package/bin/Animation/index.d.ts.map +1 -1
  11. package/bin/Animation/index.js.map +1 -1
  12. package/bin/Circle.d.ts +159 -159
  13. package/bin/Circle.d.ts.map +1 -1
  14. package/bin/Circle.js +159 -159
  15. package/bin/Circle.js.map +1 -1
  16. package/bin/Collision/CollisionDetector.d.ts +64 -64
  17. package/bin/Collision/CollisionDetector.d.ts.map +1 -1
  18. package/bin/Collision/CollisionDetector.js +66 -66
  19. package/bin/Collision/CollisionDetector.js.map +1 -1
  20. package/bin/Color.d.ts +277 -0
  21. package/bin/Color.d.ts.map +1 -0
  22. package/bin/Color.js +470 -0
  23. package/bin/Color.js.map +1 -0
  24. package/bin/Fixed32.d.ts +266 -0
  25. package/bin/Fixed32.d.ts.map +1 -0
  26. package/bin/Fixed32.js +381 -0
  27. package/bin/Fixed32.js.map +1 -0
  28. package/bin/FixedMath.d.ts +109 -0
  29. package/bin/FixedMath.d.ts.map +1 -0
  30. package/bin/FixedMath.js +264 -0
  31. package/bin/FixedMath.js.map +1 -0
  32. package/bin/FixedVector2.d.ts +293 -0
  33. package/bin/FixedVector2.d.ts.map +1 -0
  34. package/bin/FixedVector2.js +413 -0
  35. package/bin/FixedVector2.js.map +1 -0
  36. package/bin/MathUtils.d.ts +205 -205
  37. package/bin/MathUtils.d.ts.map +1 -1
  38. package/bin/MathUtils.js +206 -206
  39. package/bin/MathUtils.js.map +1 -1
  40. package/bin/Matrix3.d.ts +158 -139
  41. package/bin/Matrix3.d.ts.map +1 -1
  42. package/bin/Matrix3.js +179 -151
  43. package/bin/Matrix3.js.map +1 -1
  44. package/bin/Rectangle.d.ts +144 -144
  45. package/bin/Rectangle.d.ts.map +1 -1
  46. package/bin/Rectangle.js +144 -144
  47. package/bin/Rectangle.js.map +1 -1
  48. package/bin/Vector2.d.ts +202 -186
  49. package/bin/Vector2.d.ts.map +1 -1
  50. package/bin/Vector2.js +198 -188
  51. package/bin/Vector2.js.map +1 -1
  52. package/bin/Vector3.d.ts +257 -0
  53. package/bin/Vector3.d.ts.map +1 -0
  54. package/bin/Vector3.js +372 -0
  55. package/bin/Vector3.js.map +1 -0
  56. package/bin/index.d.ts +8 -1
  57. package/bin/index.d.ts.map +1 -1
  58. package/bin/index.js +9 -0
  59. package/bin/index.js.map +1 -1
  60. package/package.json +66 -67
@@ -21,94 +21,94 @@ export interface CollisionInfo {
21
21
  */
22
22
  export declare class CollisionDetector {
23
23
  /**
24
- * 点与圆形碰撞检测
25
- * @param point 点
26
- * @param circle 圆形
27
- * @returns 碰撞信息
28
- */
24
+ * 点与圆形碰撞检测
25
+ * @param point 点
26
+ * @param circle 圆形
27
+ * @returns 碰撞信息
28
+ */
29
29
  static pointCircle(point: Vector2, circle: Circle): CollisionInfo;
30
30
  /**
31
- * 点与矩形碰撞检测
32
- * @param point 点
33
- * @param rect 矩形
34
- * @returns 碰撞信息
35
- */
31
+ * 点与矩形碰撞检测
32
+ * @param point 点
33
+ * @param rect 矩形
34
+ * @returns 碰撞信息
35
+ */
36
36
  static pointRect(point: Vector2, rect: Rectangle): CollisionInfo;
37
37
  /**
38
- * 圆形与圆形碰撞检测
39
- * @param circle1 第一个圆形
40
- * @param circle2 第二个圆形
41
- * @returns 碰撞信息
42
- */
38
+ * 圆形与圆形碰撞检测
39
+ * @param circle1 第一个圆形
40
+ * @param circle2 第二个圆形
41
+ * @returns 碰撞信息
42
+ */
43
43
  static circleCircle(circle1: Circle, circle2: Circle): CollisionInfo;
44
44
  /**
45
- * 圆形与矩形碰撞检测
46
- * @param circle 圆形
47
- * @param rect 矩形
48
- * @returns 碰撞信息
49
- */
45
+ * 圆形与矩形碰撞检测
46
+ * @param circle 圆形
47
+ * @param rect 矩形
48
+ * @returns 碰撞信息
49
+ */
50
50
  static circleRect(circle: Circle, rect: Rectangle): CollisionInfo;
51
51
  /**
52
- * 矩形与矩形碰撞检测(AABB)
53
- * @param rect1 第一个矩形
54
- * @param rect2 第二个矩形
55
- * @returns 碰撞信息
56
- */
52
+ * 矩形与矩形碰撞检测(AABB)
53
+ * @param rect1 第一个矩形
54
+ * @param rect2 第二个矩形
55
+ * @returns 碰撞信息
56
+ */
57
57
  static rectRect(rect1: Rectangle, rect2: Rectangle): CollisionInfo;
58
58
  /**
59
- * 射线与圆形相交检测
60
- * @param rayOrigin 射线起点
61
- * @param rayDirection 射线方向(单位向量)
62
- * @param circle 圆形
63
- * @param maxDistance 最大检测距离,默认无限
64
- * @returns 碰撞信息,包含距离信息
65
- */
59
+ * 射线与圆形相交检测
60
+ * @param rayOrigin 射线起点
61
+ * @param rayDirection 射线方向(单位向量)
62
+ * @param circle 圆形
63
+ * @param maxDistance 最大检测距离,默认无限
64
+ * @returns 碰撞信息,包含距离信息
65
+ */
66
66
  static rayCircle(rayOrigin: Vector2, rayDirection: Vector2, circle: Circle, maxDistance?: number): CollisionInfo & {
67
67
  distance?: number;
68
68
  };
69
69
  /**
70
- * 射线与矩形相交检测
71
- * @param rayOrigin 射线起点
72
- * @param rayDirection 射线方向(单位向量)
73
- * @param rect 矩形
74
- * @param maxDistance 最大检测距离,默认无限
75
- * @returns 碰撞信息,包含距离信息
76
- */
70
+ * 射线与矩形相交检测
71
+ * @param rayOrigin 射线起点
72
+ * @param rayDirection 射线方向(单位向量)
73
+ * @param rect 矩形
74
+ * @param maxDistance 最大检测距离,默认无限
75
+ * @returns 碰撞信息,包含距离信息
76
+ */
77
77
  static rayRect(rayOrigin: Vector2, rayDirection: Vector2, rect: Rectangle, maxDistance?: number): CollisionInfo & {
78
78
  distance?: number;
79
79
  };
80
80
  /**
81
- * 线段与线段相交检测
82
- * @param p1 第一条线段起点
83
- * @param p2 第一条线段终点
84
- * @param p3 第二条线段起点
85
- * @param p4 第二条线段终点
86
- * @returns 碰撞信息
87
- */
81
+ * 线段与线段相交检测
82
+ * @param p1 第一条线段起点
83
+ * @param p2 第一条线段终点
84
+ * @param p3 第二条线段起点
85
+ * @param p4 第二条线段终点
86
+ * @returns 碰撞信息
87
+ */
88
88
  static lineSegmentLineSegment(p1: Vector2, p2: Vector2, p3: Vector2, p4: Vector2): CollisionInfo;
89
89
  /**
90
- * 线段与圆形相交检测
91
- * @param lineStart 线段起点
92
- * @param lineEnd 线段终点
93
- * @param circle 圆形
94
- * @returns 碰撞信息
95
- */
90
+ * 线段与圆形相交检测
91
+ * @param lineStart 线段起点
92
+ * @param lineEnd 线段终点
93
+ * @param circle 圆形
94
+ * @returns 碰撞信息
95
+ */
96
96
  static lineSegmentCircle(lineStart: Vector2, lineEnd: Vector2, circle: Circle): CollisionInfo;
97
97
  /**
98
- * AABB包围盒快速排斥测试
99
- * @param bounds1 第一个包围盒
100
- * @param bounds2 第二个包围盒
101
- * @returns 是否可能相交
102
- */
98
+ * AABB包围盒快速排斥测试
99
+ * @param bounds1 第一个包围盒
100
+ * @param bounds2 第二个包围盒
101
+ * @returns 是否可能相交
102
+ */
103
103
  static aabbTest(bounds1: Rectangle, bounds2: Rectangle): boolean;
104
104
  /**
105
- * 圆形包围盒快速排斥测试
106
- * @param center1 第一个圆心
107
- * @param radius1 第一个半径
108
- * @param center2 第二个圆心
109
- * @param radius2 第二个半径
110
- * @returns 是否可能相交
111
- */
105
+ * 圆形包围盒快速排斥测试
106
+ * @param center1 第一个圆心
107
+ * @param radius1 第一个半径
108
+ * @param center2 第二个圆心
109
+ * @param radius2 第二个半径
110
+ * @returns 是否可能相交
111
+ */
112
112
  static circleTest(center1: Vector2, radius1: number, center2: Vector2, radius2: number): boolean;
113
113
  }
114
114
  //# sourceMappingURL=CollisionDetector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CollisionDetector.d.ts","sourceRoot":"","sources":["../../src/Collision/CollisionDetector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,aAAa;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,oBAAoB;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU;IACV,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,qBAAa,iBAAiB;IAI5B;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa;IAoBjE;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,aAAa;IAsChE;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa;IA0BpE;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,aAAa;IA6BjE;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,aAAa;IAqDlE;;;;;;;OAOG;IACH,MAAM,CAAC,SAAS,CACd,SAAS,EAAE,OAAO,EAClB,YAAY,EAAE,OAAO,EACrB,MAAM,EAAE,MAAM,EACd,WAAW,GAAE,MAAiB,GAC7B,aAAa,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAoCxC;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,CACZ,SAAS,EAAE,OAAO,EAClB,YAAY,EAAE,OAAO,EACrB,IAAI,EAAE,SAAS,EACf,WAAW,GAAE,MAAiB,GAC7B,aAAa,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAgDxC;;;;;;;OAOG;IACH,MAAM,CAAC,sBAAsB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,GAAG,aAAa;IAgChG;;;;;;OAMG;IACH,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa;IA0C7F;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO;IAIhE;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;CAIjG"}
1
+ {"version":3,"file":"CollisionDetector.d.ts","sourceRoot":"","sources":["../../src/Collision/CollisionDetector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,aAAa;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,oBAAoB;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU;IACV,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,qBAAa,iBAAiB;IAI1B;;;;;KAKC;IACD,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa;IAoBjE;;;;;KAKC;IACD,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,aAAa;IAsChE;;;;;KAKC;IACD,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa;IA0BpE;;;;;KAKC;IACD,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,aAAa;IA6BjE;;;;;KAKC;IACD,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,aAAa;IAqDlE;;;;;;;KAOC;IACD,MAAM,CAAC,SAAS,CACZ,SAAS,EAAE,OAAO,EAClB,YAAY,EAAE,OAAO,EACrB,MAAM,EAAE,MAAM,EACd,WAAW,GAAE,MAAiB,GAC/B,aAAa,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAoCxC;;;;;;;KAOC;IACD,MAAM,CAAC,OAAO,CACV,SAAS,EAAE,OAAO,EAClB,YAAY,EAAE,OAAO,EACrB,IAAI,EAAE,SAAS,EACf,WAAW,GAAE,MAAiB,GAC/B,aAAa,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAgDxC;;;;;;;KAOC;IACD,MAAM,CAAC,sBAAsB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,GAAG,aAAa;IAgChG;;;;;;KAMC;IACD,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa;IA0C7F;;;;;KAKC;IACD,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO;IAIhE;;;;;;;KAOC;IACD,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;CAInG"}
@@ -7,11 +7,11 @@ import { Vector2 } from '../Vector2';
7
7
  export class CollisionDetector {
8
8
  // 点与几何体碰撞检测
9
9
  /**
10
- * 点与圆形碰撞检测
11
- * @param point 点
12
- * @param circle 圆形
13
- * @returns 碰撞信息
14
- */
10
+ * 点与圆形碰撞检测
11
+ * @param point 点
12
+ * @param circle 圆形
13
+ * @returns 碰撞信息
14
+ */
15
15
  static pointCircle(point, circle) {
16
16
  const distance = Vector2.distance(point, circle.center);
17
17
  const collided = distance <= circle.radius;
@@ -29,11 +29,11 @@ export class CollisionDetector {
29
29
  };
30
30
  }
31
31
  /**
32
- * 点与矩形碰撞检测
33
- * @param point 点
34
- * @param rect 矩形
35
- * @returns 碰撞信息
36
- */
32
+ * 点与矩形碰撞检测
33
+ * @param point 点
34
+ * @param rect 矩形
35
+ * @returns 碰撞信息
36
+ */
37
37
  static pointRect(point, rect) {
38
38
  const collided = rect.containsPoint(point);
39
39
  if (!collided) {
@@ -47,7 +47,7 @@ export class CollisionDetector {
47
47
  // 找到最小距离确定法线方向
48
48
  const minDist = Math.min(distLeft, distRight, distTop, distBottom);
49
49
  let normal;
50
- let penetration = minDist;
50
+ const penetration = minDist;
51
51
  if (minDist === distLeft) {
52
52
  normal = new Vector2(-1, 0);
53
53
  }
@@ -69,11 +69,11 @@ export class CollisionDetector {
69
69
  }
70
70
  // 圆形碰撞检测
71
71
  /**
72
- * 圆形与圆形碰撞检测
73
- * @param circle1 第一个圆形
74
- * @param circle2 第二个圆形
75
- * @returns 碰撞信息
76
- */
72
+ * 圆形与圆形碰撞检测
73
+ * @param circle1 第一个圆形
74
+ * @param circle2 第二个圆形
75
+ * @returns 碰撞信息
76
+ */
77
77
  static circleCircle(circle1, circle2) {
78
78
  const distance = Vector2.distance(circle1.center, circle2.center);
79
79
  const radiusSum = circle1.radius + circle2.radius;
@@ -94,11 +94,11 @@ export class CollisionDetector {
94
94
  };
95
95
  }
96
96
  /**
97
- * 圆形与矩形碰撞检测
98
- * @param circle 圆形
99
- * @param rect 矩形
100
- * @returns 碰撞信息
101
- */
97
+ * 圆形与矩形碰撞检测
98
+ * @param circle 圆形
99
+ * @param rect 矩形
100
+ * @returns 碰撞信息
101
+ */
102
102
  static circleRect(circle, rect) {
103
103
  // 找到矩形上离圆心最近的点
104
104
  const closestPoint = rect.closestPointTo(circle.center);
@@ -122,11 +122,11 @@ export class CollisionDetector {
122
122
  }
123
123
  // 矩形碰撞检测
124
124
  /**
125
- * 矩形与矩形碰撞检测(AABB)
126
- * @param rect1 第一个矩形
127
- * @param rect2 第二个矩形
128
- * @returns 碰撞信息
129
- */
125
+ * 矩形与矩形碰撞检测(AABB)
126
+ * @param rect1 第一个矩形
127
+ * @param rect2 第二个矩形
128
+ * @returns 碰撞信息
129
+ */
130
130
  static rectRect(rect1, rect2) {
131
131
  const collided = rect1.intersects(rect2);
132
132
  if (!collided) {
@@ -172,13 +172,13 @@ export class CollisionDetector {
172
172
  }
173
173
  // 射线投射
174
174
  /**
175
- * 射线与圆形相交检测
176
- * @param rayOrigin 射线起点
177
- * @param rayDirection 射线方向(单位向量)
178
- * @param circle 圆形
179
- * @param maxDistance 最大检测距离,默认无限
180
- * @returns 碰撞信息,包含距离信息
181
- */
175
+ * 射线与圆形相交检测
176
+ * @param rayOrigin 射线起点
177
+ * @param rayDirection 射线方向(单位向量)
178
+ * @param circle 圆形
179
+ * @param maxDistance 最大检测距离,默认无限
180
+ * @returns 碰撞信息,包含距离信息
181
+ */
182
182
  static rayCircle(rayOrigin, rayDirection, circle, maxDistance = Infinity) {
183
183
  const oc = Vector2.subtract(rayOrigin, circle.center);
184
184
  const a = rayDirection.lengthSquared;
@@ -192,7 +192,7 @@ export class CollisionDetector {
192
192
  const t1 = (-b - sqrt) / (2 * a);
193
193
  const t2 = (-b + sqrt) / (2 * a);
194
194
  // 选择最近的正距离
195
- let t = t1 >= 0 ? t1 : t2;
195
+ const t = t1 >= 0 ? t1 : t2;
196
196
  if (t < 0 || t > maxDistance) {
197
197
  return { collided: false };
198
198
  }
@@ -207,13 +207,13 @@ export class CollisionDetector {
207
207
  };
208
208
  }
209
209
  /**
210
- * 射线与矩形相交检测
211
- * @param rayOrigin 射线起点
212
- * @param rayDirection 射线方向(单位向量)
213
- * @param rect 矩形
214
- * @param maxDistance 最大检测距离,默认无限
215
- * @returns 碰撞信息,包含距离信息
216
- */
210
+ * 射线与矩形相交检测
211
+ * @param rayOrigin 射线起点
212
+ * @param rayDirection 射线方向(单位向量)
213
+ * @param rect 矩形
214
+ * @param maxDistance 最大检测距离,默认无限
215
+ * @returns 碰撞信息,包含距离信息
216
+ */
217
217
  static rayRect(rayOrigin, rayDirection, rect, maxDistance = Infinity) {
218
218
  // 避免除零
219
219
  const invDirX = rayDirection.x !== 0 ? 1 / rayDirection.x : 1e10;
@@ -256,13 +256,13 @@ export class CollisionDetector {
256
256
  }
257
257
  // 线段相交检测
258
258
  /**
259
- * 线段与线段相交检测
260
- * @param p1 第一条线段起点
261
- * @param p2 第一条线段终点
262
- * @param p3 第二条线段起点
263
- * @param p4 第二条线段终点
264
- * @returns 碰撞信息
265
- */
259
+ * 线段与线段相交检测
260
+ * @param p1 第一条线段起点
261
+ * @param p2 第一条线段终点
262
+ * @param p3 第二条线段起点
263
+ * @param p4 第二条线段终点
264
+ * @returns 碰撞信息
265
+ */
266
266
  static lineSegmentLineSegment(p1, p2, p3, p4) {
267
267
  const d1 = Vector2.subtract(p2, p1);
268
268
  const d2 = Vector2.subtract(p4, p3);
@@ -288,12 +288,12 @@ export class CollisionDetector {
288
288
  return { collided: false };
289
289
  }
290
290
  /**
291
- * 线段与圆形相交检测
292
- * @param lineStart 线段起点
293
- * @param lineEnd 线段终点
294
- * @param circle 圆形
295
- * @returns 碰撞信息
296
- */
291
+ * 线段与圆形相交检测
292
+ * @param lineStart 线段起点
293
+ * @param lineEnd 线段终点
294
+ * @param circle 圆形
295
+ * @returns 碰撞信息
296
+ */
297
297
  static lineSegmentCircle(lineStart, lineEnd, circle) {
298
298
  const d = Vector2.subtract(lineEnd, lineStart);
299
299
  const f = Vector2.subtract(lineStart, circle.center);
@@ -329,22 +329,22 @@ export class CollisionDetector {
329
329
  }
330
330
  // 快速排斥测试
331
331
  /**
332
- * AABB包围盒快速排斥测试
333
- * @param bounds1 第一个包围盒
334
- * @param bounds2 第二个包围盒
335
- * @returns 是否可能相交
336
- */
332
+ * AABB包围盒快速排斥测试
333
+ * @param bounds1 第一个包围盒
334
+ * @param bounds2 第二个包围盒
335
+ * @returns 是否可能相交
336
+ */
337
337
  static aabbTest(bounds1, bounds2) {
338
338
  return bounds1.intersects(bounds2);
339
339
  }
340
340
  /**
341
- * 圆形包围盒快速排斥测试
342
- * @param center1 第一个圆心
343
- * @param radius1 第一个半径
344
- * @param center2 第二个圆心
345
- * @param radius2 第二个半径
346
- * @returns 是否可能相交
347
- */
341
+ * 圆形包围盒快速排斥测试
342
+ * @param center1 第一个圆心
343
+ * @param radius1 第一个半径
344
+ * @param center2 第二个圆心
345
+ * @param radius2 第二个半径
346
+ * @returns 是否可能相交
347
+ */
348
348
  static circleTest(center1, radius1, center2, radius2) {
349
349
  const distance = Vector2.distance(center1, center2);
350
350
  return distance <= radius1 + radius2;
@@ -1 +1 @@
1
- {"version":3,"file":"CollisionDetector.js","sourceRoot":"","sources":["../../src/Collision/CollisionDetector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CollisionDetector.js","sourceRoot":"","sources":["../../src/Collision/CollisionDetector.ts"],"names":[],"mappings":"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"}