@safe-engine/cocos 1.4.12 → 1.5.3

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 (83) hide show
  1. package/@types/index.d.ts +0 -7
  2. package/dist/animation/AnimationComponent.d.ts +63 -0
  3. package/dist/animation/AnimationComponent.d.ts.map +1 -0
  4. package/dist/animation/AnimationComponent.js +141 -0
  5. package/dist/animation/AnimationSystem.d.ts +6 -0
  6. package/dist/animation/AnimationSystem.d.ts.map +1 -0
  7. package/dist/animation/AnimationSystem.js +30 -0
  8. package/dist/animation/index.d.ts +2 -0
  9. package/dist/animation/index.d.ts.map +1 -0
  10. package/dist/animation/index.js +10 -0
  11. package/dist/app.d.ts +13 -2
  12. package/dist/app.d.ts.map +1 -1
  13. package/dist/app.js +8 -10
  14. package/dist/collider/CollideComponent.d.ts +64 -0
  15. package/dist/collider/CollideComponent.d.ts.map +1 -0
  16. package/dist/collider/CollideComponent.js +265 -0
  17. package/dist/collider/CollideSystem.d.ts +21 -0
  18. package/dist/collider/CollideSystem.d.ts.map +1 -0
  19. package/dist/collider/CollideSystem.js +181 -0
  20. package/dist/collider/index.d.ts +2 -0
  21. package/dist/collider/index.d.ts.map +1 -0
  22. package/dist/collider/index.js +16 -0
  23. package/dist/dragonbones/PixiDragonBonesSprite.d.ts.map +1 -1
  24. package/dist/dragonbones/PixiDragonBonesSprite.js +11 -11
  25. package/dist/dragonbones/cocos/CocosArmatureDisplay.d.ts +77 -0
  26. package/dist/dragonbones/cocos/CocosArmatureDisplay.d.ts.map +1 -0
  27. package/dist/dragonbones/cocos/CocosArmatureDisplay.js +227 -0
  28. package/dist/dragonbones/cocos/CocosFactory.d.ts +128 -0
  29. package/dist/dragonbones/cocos/CocosFactory.d.ts.map +1 -0
  30. package/dist/dragonbones/cocos/CocosFactory.js +231 -0
  31. package/dist/dragonbones/cocos/CocosSlot.d.ts +49 -0
  32. package/dist/dragonbones/cocos/CocosSlot.d.ts.map +1 -0
  33. package/dist/dragonbones/cocos/CocosSlot.js +385 -0
  34. package/dist/dragonbones/cocos/CocosTextureAtlasData.d.ts +53 -0
  35. package/dist/dragonbones/cocos/CocosTextureAtlasData.d.ts.map +1 -0
  36. package/dist/dragonbones/cocos/CocosTextureAtlasData.js +158 -0
  37. package/dist/dragonbones/dragonBones.d.ts +3 -0
  38. package/dist/dragonbones/dragonBones.d.ts.map +1 -0
  39. package/dist/dragonbones/dragonBones.js +4788 -0
  40. package/dist/dragonbones/index.d.ts +3 -2
  41. package/dist/dragonbones/index.d.ts.map +1 -1
  42. package/dist/dragonbones/index.js +9 -9
  43. package/dist/gworld/components/CollideComponent.d.ts +3 -3
  44. package/dist/gworld/components/GUIComponent.d.ts +0 -4
  45. package/dist/gworld/components/GUIComponent.d.ts.map +1 -1
  46. package/dist/gworld/components/GUIComponent.js +1 -39
  47. package/dist/gworld/components/NodeComp.d.ts.map +1 -1
  48. package/dist/gworld/components/RenderComponent.d.ts.map +1 -1
  49. package/dist/gworld/systems/CollideSystem.d.ts +2 -1
  50. package/dist/gworld/systems/CollideSystem.d.ts.map +1 -1
  51. package/dist/gworld/systems/CollideSystem.js +12 -2
  52. package/dist/gworld/systems/GUISystem.d.ts +0 -1
  53. package/dist/gworld/systems/GUISystem.d.ts.map +1 -1
  54. package/dist/gworld/systems/GUISystem.js +0 -11
  55. package/dist/gworld/systems/NoRenderSystem.d.ts.map +1 -1
  56. package/dist/gworld/systems/RenderSystem.d.ts.map +1 -1
  57. package/dist/gworld/systems/RenderSystem.js +0 -15
  58. package/dist/helper/NodePool.d.ts +9 -0
  59. package/dist/helper/NodePool.d.ts.map +1 -0
  60. package/dist/helper/NodePool.js +29 -0
  61. package/dist/helper/action.d.ts +1 -1
  62. package/dist/helper/utils.d.ts +1 -2
  63. package/dist/helper/utils.d.ts.map +1 -1
  64. package/dist/helper/utils.js +0 -10
  65. package/dist/index.d.ts +0 -5
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +0 -5
  68. package/dist/richtext/RichTextComp.d.ts +13 -0
  69. package/dist/richtext/RichTextComp.d.ts.map +1 -0
  70. package/dist/richtext/RichTextComp.js +57 -0
  71. package/dist/richtext/RichTextSystem.d.ts +7 -0
  72. package/dist/richtext/RichTextSystem.d.ts.map +1 -0
  73. package/dist/richtext/RichTextSystem.js +28 -0
  74. package/dist/richtext/html-text-parser.d.ts +30 -0
  75. package/dist/richtext/html-text-parser.d.ts.map +1 -0
  76. package/dist/richtext/html-text-parser.js +354 -0
  77. package/dist/richtext/index.d.ts +2 -0
  78. package/dist/richtext/index.d.ts.map +1 -0
  79. package/dist/richtext/index.js +9 -0
  80. package/dist/spine/index.d.ts +31 -0
  81. package/dist/spine/index.d.ts.map +1 -0
  82. package/dist/spine/index.js +74 -0
  83. package/package.json +1 -1
@@ -0,0 +1,265 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.Contract = exports.CollisionType = exports.PolygonCollider = exports.CircleCollider = exports.BoxCollider = exports.Collider = void 0;
19
+ var decorator_1 = require("../gworld/core/decorator");
20
+ var math_1 = require("../helper/math");
21
+ var polyfills_1 = require("../polyfills");
22
+ function getNodeToWorldTransformAR(node) {
23
+ var t = node.instance.getNodeToWorldTransform();
24
+ var anchorPointSize = node.instance.getAnchorPointInPoints();
25
+ var transform = cc.affineTransformTranslate(t, anchorPointSize.x, anchorPointSize.y);
26
+ return transform;
27
+ }
28
+ function cloneRect(origin) {
29
+ return cc.rect(origin.x, origin.y, origin.width, origin.height);
30
+ }
31
+ var Collider = /** @class */ (function (_super) {
32
+ __extends(Collider, _super);
33
+ function Collider() {
34
+ var _this = _super !== null && _super.apply(this, arguments) || this;
35
+ _this._worldPoints = [];
36
+ _this._AABB = cc.rect(0, 0, 0, 0);
37
+ _this._preAabb = cc.rect(0, 0, 0, 0);
38
+ return _this;
39
+ }
40
+ // update(dt: number, draw?: cc.DrawNode) {}
41
+ Collider.prototype.getAABB = function () {
42
+ var collider = this.getComponent(Collider);
43
+ if (collider)
44
+ return collider._AABB;
45
+ return this._AABB;
46
+ };
47
+ Object.defineProperty(Collider.prototype, "world", {
48
+ get: function () {
49
+ return {
50
+ points: this._worldPoints,
51
+ preAabb: this._preAabb,
52
+ };
53
+ },
54
+ enumerable: false,
55
+ configurable: true
56
+ });
57
+ return Collider;
58
+ }(decorator_1.NoRenderComponentX));
59
+ exports.Collider = Collider;
60
+ var BoxCollider = /** @class */ (function (_super) {
61
+ __extends(BoxCollider, _super);
62
+ function BoxCollider() {
63
+ return _super !== null && _super.apply(this, arguments) || this;
64
+ }
65
+ Object.defineProperty(BoxCollider.prototype, "size", {
66
+ get: function () {
67
+ return cc.size(this.props.width, this.props.height);
68
+ },
69
+ set: function (s) {
70
+ this.props.width = s.width;
71
+ this.props.height = s.height;
72
+ },
73
+ enumerable: false,
74
+ configurable: true
75
+ });
76
+ BoxCollider.prototype.update = function (dt, draw) {
77
+ if (!this.node) {
78
+ return;
79
+ }
80
+ var collider = this.getComponent(Collider);
81
+ var _a = collider.props.offset || (0, polyfills_1.Vec2)(0, 0), x = _a.x, y = _a.y;
82
+ var hw = this.props.width * 0.5;
83
+ var hh = this.props.height * 0.5;
84
+ var transform = getNodeToWorldTransformAR(this.node);
85
+ var rect = cc.rect(x - hw, y - hh, this.props.width, this.props.height);
86
+ var rectTrs = cc.rectApplyAffineTransform(rect, transform);
87
+ // cc.log(rectTrs);
88
+ collider._worldPoints[0] = (0, polyfills_1.Vec2)(rectTrs.x, rectTrs.y);
89
+ collider._worldPoints[1] = (0, polyfills_1.Vec2)(rectTrs.x, rectTrs.y + rectTrs.height);
90
+ collider._worldPoints[2] = (0, polyfills_1.Vec2)(rectTrs.x + rectTrs.width, rectTrs.y + rectTrs.height);
91
+ collider._worldPoints[3] = (0, polyfills_1.Vec2)(rectTrs.x + rectTrs.width, rectTrs.y);
92
+ var listX = collider._worldPoints.map(function (_a) {
93
+ var x = _a.x;
94
+ return x;
95
+ });
96
+ var listY = collider._worldPoints.map(function (_a) {
97
+ var y = _a.y;
98
+ return y;
99
+ });
100
+ collider._preAabb = cloneRect(collider._AABB);
101
+ collider._AABB.x = (0, math_1.getMin)(listX);
102
+ collider._AABB.y = (0, math_1.getMin)(listY);
103
+ collider._AABB.width = (0, math_1.getMax)(listX) - collider._AABB.x;
104
+ collider._AABB.height = (0, math_1.getMax)(listY) - collider._AABB.y;
105
+ if (draw) {
106
+ draw.drawPoly(collider._worldPoints, null, 3, cc.Color.DEBUG_BORDER_COLOR);
107
+ }
108
+ };
109
+ return BoxCollider;
110
+ }(Collider));
111
+ exports.BoxCollider = BoxCollider;
112
+ var CircleCollider = /** @class */ (function (_super) {
113
+ __extends(CircleCollider, _super);
114
+ function CircleCollider() {
115
+ return _super !== null && _super.apply(this, arguments) || this;
116
+ }
117
+ CircleCollider.prototype.update = function (dt, draw) {
118
+ if (!this.node) {
119
+ return;
120
+ }
121
+ var transform = getNodeToWorldTransformAR(this.node);
122
+ var collider = this.getComponent(Collider);
123
+ collider._worldRadius = this.props.radius * this.node.scaleX;
124
+ collider._worldPosition = cc.pointApplyAffineTransform(collider.props.offset, transform);
125
+ if (draw) {
126
+ draw.drawDot(collider._worldPosition, collider._worldRadius, cc.Color.DEBUG_FILL_COLOR);
127
+ draw.drawCircle(collider._worldPosition, collider._worldRadius, 0, 64, true, 3, cc.Color.DEBUG_BORDER_COLOR);
128
+ }
129
+ collider._preAabb = cloneRect(collider._AABB);
130
+ collider._AABB.x = collider._worldPosition.x - collider._worldRadius;
131
+ collider._AABB.y = collider._worldPosition.y - collider._worldRadius;
132
+ collider._AABB.width = collider._worldRadius * 2;
133
+ collider._AABB.height = collider._AABB.width;
134
+ // draw.drawRect(cc.p(this._AABB.x, this._AABB.y),
135
+ // cc.p(this._worldPosition.x + this._worldRadius, this._worldPosition.y + this._worldRadius),
136
+ // cc.Color.WHITE, 3, cc.Color.DEBUG_BORDER_COLOR);
137
+ };
138
+ return CircleCollider;
139
+ }(Collider));
140
+ exports.CircleCollider = CircleCollider;
141
+ var PolygonCollider = /** @class */ (function (_super) {
142
+ __extends(PolygonCollider, _super);
143
+ function PolygonCollider() {
144
+ return _super !== null && _super.apply(this, arguments) || this;
145
+ }
146
+ Object.defineProperty(PolygonCollider.prototype, "points", {
147
+ get: function () {
148
+ var _a = this.props.offset, x = _a.x, y = _a.y;
149
+ var pointsList = this.props.points.map(function (p) { return (0, polyfills_1.Vec2)(p.x + x, p.y + y); });
150
+ return pointsList;
151
+ },
152
+ set: function (points) {
153
+ this.props.points = points;
154
+ },
155
+ enumerable: false,
156
+ configurable: true
157
+ });
158
+ PolygonCollider.prototype.update = function (dt, draw) {
159
+ if (!this.node) {
160
+ return;
161
+ }
162
+ var transform = getNodeToWorldTransformAR(this.node);
163
+ var collider = this.getComponent(Collider);
164
+ collider._worldPoints = this.points.map(function (p) { return cc.pointApplyAffineTransform(p, transform); });
165
+ // cc.log(polyPoints);
166
+ if (draw) {
167
+ draw.drawPoly(collider._worldPoints, cc.Color.DEBUG_FILL_COLOR, 3, cc.Color.DEBUG_BORDER_COLOR);
168
+ }
169
+ var listX = collider._worldPoints.map(function (_a) {
170
+ var x = _a.x;
171
+ return x;
172
+ });
173
+ var listY = collider._worldPoints.map(function (_a) {
174
+ var y = _a.y;
175
+ return y;
176
+ });
177
+ collider._preAabb = cloneRect(collider._AABB);
178
+ collider._AABB.x = (0, math_1.getMin)(listX);
179
+ collider._AABB.y = (0, math_1.getMin)(listY);
180
+ collider._AABB.width = (0, math_1.getMax)(listX) - collider._AABB.x;
181
+ collider._AABB.height = (0, math_1.getMax)(listY) - collider._AABB.y;
182
+ // draw.drawRect(cc.p(this._AABB.x, this._AABB.y), cc.p(max(listX), max(listY)),
183
+ // cc.Color.WHITE, 3, cc.Color.DEBUG_BORDER_COLOR);
184
+ };
185
+ return PolygonCollider;
186
+ }(Collider));
187
+ exports.PolygonCollider = PolygonCollider;
188
+ var CollisionType;
189
+ (function (CollisionType) {
190
+ CollisionType[CollisionType["NONE"] = 0] = "NONE";
191
+ CollisionType[CollisionType["ENTER"] = 1] = "ENTER";
192
+ CollisionType[CollisionType["STAY"] = 2] = "STAY";
193
+ CollisionType[CollisionType["EXIT"] = 3] = "EXIT";
194
+ })(CollisionType || (exports.CollisionType = CollisionType = {}));
195
+ function isPolygonCollider(col) {
196
+ return col.getComponent(PolygonCollider) || col.getComponent(BoxCollider);
197
+ }
198
+ function isCircleCollider(col) {
199
+ return col.getComponent(CircleCollider);
200
+ }
201
+ var Contract = /** @class */ (function () {
202
+ function Contract(collider1, collider2) {
203
+ this._collider1 = collider1;
204
+ this._collider2 = collider2;
205
+ var isCollider1Polygon = isPolygonCollider(collider1);
206
+ var isCollider2Polygon = isPolygonCollider(collider2);
207
+ var isCollider1Circle = isCircleCollider(collider1);
208
+ var isCollider2Circle = isCircleCollider(collider2);
209
+ if (isCollider1Polygon && isCollider2Polygon) {
210
+ this._isPolygonPolygon = true;
211
+ }
212
+ else if (isCollider1Circle && isCollider2Circle) {
213
+ this._isCircleCircle = true;
214
+ }
215
+ else if (isCollider1Polygon && isCollider2Circle) {
216
+ this._isPolygonCircle = true;
217
+ }
218
+ else if (isCollider1Circle && isCollider2Polygon) {
219
+ this._isPolygonCircle = true;
220
+ this._collider1 = collider2;
221
+ this._collider2 = collider1;
222
+ }
223
+ // cc.log(this._isPolygonPolygon);
224
+ }
225
+ Contract.prototype.updateState = function () {
226
+ var result = this.test();
227
+ var type = CollisionType.NONE;
228
+ if (result && !this._touching) {
229
+ this._touching = true;
230
+ type = CollisionType.ENTER;
231
+ }
232
+ else if (result && this._touching) {
233
+ type = CollisionType.STAY;
234
+ }
235
+ else if (!result && this._touching) {
236
+ this._touching = false;
237
+ type = CollisionType.EXIT;
238
+ }
239
+ return type;
240
+ };
241
+ Contract.prototype.test = function () {
242
+ // if (!shouldCollider(this._collider1, this._collider2)) {
243
+ // return false;
244
+ // }
245
+ // cc.log(this._collider1.getAABB(), this._collider2.getAABB());
246
+ if (!cc.rectIntersectsRect(this._collider1.getAABB(), this._collider2.getAABB())) {
247
+ return false;
248
+ }
249
+ if (this._isPolygonPolygon) {
250
+ return cc.Intersection.polygonPolygon(this._collider1._worldPoints, this._collider2._worldPoints);
251
+ }
252
+ if (this._isCircleCircle) {
253
+ var p1 = this._collider1;
254
+ var p2 = this._collider2;
255
+ return cc.Intersection.circleCircle(p1._worldPosition, p1._worldRadius, p2._worldPosition, p2._worldRadius);
256
+ }
257
+ if (this._isPolygonCircle) {
258
+ var p2 = this._collider2;
259
+ return cc.Intersection.polygonCircle(this._collider1._worldPoints, p2._worldPosition, p2._worldRadius);
260
+ }
261
+ return false;
262
+ };
263
+ return Contract;
264
+ }());
265
+ exports.Contract = Contract;
@@ -0,0 +1,21 @@
1
+ import { EntityManager, EventManager, System } from 'entityx-ts';
2
+ import { Collider, Contract } from './CollideComponent';
3
+ export declare function shouldCollider(colA: Collider, colB: Collider): any;
4
+ export declare class CollideSystem implements System {
5
+ listColliders: Collider[];
6
+ _contracts: Contract[];
7
+ removeColliders: any[];
8
+ debugGraphics: cc.DrawNode;
9
+ enabledDebugDraw: boolean;
10
+ enabled: boolean;
11
+ colliderMatrix: boolean[][];
12
+ configure(event_manager: EventManager): void;
13
+ private onAddCollider;
14
+ private onRemoveCollider;
15
+ update(entities: EntityManager, events: EventManager, dt: number): void;
16
+ addCollider(collider: Collider): void;
17
+ removeCollider(collider: Collider): void;
18
+ addDebugNode(root: cc.Scene): void;
19
+ toggleDebugDraw(enable?: boolean): void;
20
+ }
21
+ //# sourceMappingURL=CollideSystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollideSystem.d.ts","sourceRoot":"","sources":["../../src/collider/CollideSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAc,MAAM,EAAE,MAAM,YAAY,CAAA;AAI5E,OAAO,EAA+B,QAAQ,EAAiB,QAAQ,EAAmB,MAAM,oBAAoB,CAAA;AAEpH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,OAQ5D;AAED,qBAAa,aAAc,YAAW,MAAM;IAC1C,aAAa,EAAE,QAAQ,EAAE,CAAK;IAC9B,UAAU,EAAE,QAAQ,EAAE,CAAK;IAC3B,eAAe,QAAK;IACpB,aAAa,EAAE,EAAE,CAAC,QAAQ,CAAA;IAC1B,gBAAgB,UAAQ;IACxB,OAAO,UAAO;IACd,cAAc,cAAW;IAEzB,SAAS,CAAC,aAAa,EAAE,YAAY;IASrC,OAAO,CAAC,aAAa,CAOpB;IAED,OAAO,CAAC,gBAAgB,CAEvB;IAED,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM;IA2GhE,WAAW,CAAC,QAAQ,EAAE,QAAQ;IAS9B,cAAc,CAAC,QAAQ,EAAE,QAAQ;IAIjC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK;IAK3B,eAAe,CAAC,MAAM,UAAO;CAI9B"}
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CollideSystem = void 0;
4
+ exports.shouldCollider = shouldCollider;
5
+ var entityx_ts_1 = require("entityx-ts");
6
+ var gworld_1 = require("../gworld");
7
+ var NodeComp_1 = require("../gworld/components/NodeComp");
8
+ var CollideComponent_1 = require("./CollideComponent");
9
+ function shouldCollider(colA, colB) {
10
+ var groupA = colA.node.group;
11
+ var groupB = colB.node.group;
12
+ if (groupA === undefined || groupB === undefined) {
13
+ return true;
14
+ }
15
+ var colliderMatrix = gworld_1.GameWorld.Instance.systems.get(CollideSystem).colliderMatrix;
16
+ return colliderMatrix[groupA][groupB];
17
+ }
18
+ var CollideSystem = /** @class */ (function () {
19
+ function CollideSystem() {
20
+ var _this = this;
21
+ this.listColliders = [];
22
+ this._contracts = [];
23
+ this.removeColliders = [];
24
+ this.enabledDebugDraw = false;
25
+ this.enabled = true;
26
+ this.colliderMatrix = [[true]];
27
+ this.onAddCollider = function (_a) {
28
+ var entity = _a.entity, component = _a.component;
29
+ var collider = entity.assign(new CollideComponent_1.Collider(component));
30
+ collider.node = entity.getComponent(NodeComp_1.NodeComp);
31
+ collider.props = component.props;
32
+ // collider.props.enable = true
33
+ component.node = entity.getComponent(NodeComp_1.NodeComp);
34
+ _this.addCollider(collider);
35
+ };
36
+ this.onRemoveCollider = function (_a) {
37
+ var component = _a.component;
38
+ _this.removeColliders.push(component.getComponent(CollideComponent_1.Collider));
39
+ };
40
+ }
41
+ CollideSystem.prototype.configure = function (event_manager) {
42
+ event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, CollideComponent_1.BoxCollider, this.onAddCollider.bind(this));
43
+ event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, CollideComponent_1.CircleCollider, this.onAddCollider.bind(this));
44
+ event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, CollideComponent_1.PolygonCollider, this.onAddCollider.bind(this));
45
+ event_manager.subscribe(entityx_ts_1.EventTypes.ComponentRemoved, CollideComponent_1.BoxCollider, this.onRemoveCollider.bind(this));
46
+ event_manager.subscribe(entityx_ts_1.EventTypes.ComponentRemoved, CollideComponent_1.CircleCollider, this.onRemoveCollider.bind(this));
47
+ event_manager.subscribe(entityx_ts_1.EventTypes.ComponentRemoved, CollideComponent_1.PolygonCollider, this.onRemoveCollider.bind(this));
48
+ };
49
+ CollideSystem.prototype.update = function (entities, events, dt) {
50
+ var _this = this;
51
+ if (!this.enabled) {
52
+ return;
53
+ }
54
+ this.listColliders.forEach(function (collider) {
55
+ if (!cc.sys.isObjectValid(collider.node.instance)) {
56
+ _this.removeColliders.push(collider);
57
+ }
58
+ });
59
+ // this.removeColliders.forEach(comp => {
60
+ // this.listColliders = this.listColliders.filter(col => !col.isEqual(comp)
61
+ // && cc.sys.isObjectValid(col.node.instance));
62
+ // this._contracts = this._contracts.filter(contract => {
63
+ // const col1 = contract._collider1;
64
+ // const col2 = contract._collider2;
65
+ // if (col1.isEqual(comp) || !cc.sys.isObjectValid(col1.node.instance)) {
66
+ // if (contract._touching) {
67
+ // col2.node.emit('onCollisionExit', col1, col2);
68
+ // }
69
+ // return false;
70
+ // }
71
+ // if (col2.isEqual(comp) || !cc.sys.isObjectValid(col2.node.instance)) {
72
+ // if (contract._touching) {
73
+ // col1.node.emit('onCollisionExit', col2, col1);
74
+ // }
75
+ // return false;
76
+ // }
77
+ // return true;
78
+ // }
79
+ // );
80
+ // });
81
+ this.removeColliders = [];
82
+ var draw;
83
+ var _a = this, enabledDebugDraw = _a.enabledDebugDraw, debugGraphics = _a.debugGraphics;
84
+ if (enabledDebugDraw) {
85
+ draw = debugGraphics;
86
+ draw.clear();
87
+ // this.listColliders.forEach(collider => {
88
+ // if (collider.node && collider.node.active) {
89
+ // collider.update(dt, draw);
90
+ // }
91
+ // });
92
+ // } else {
93
+ // this.listColliders.forEach(collider => {
94
+ // if (collider.node && collider.node.active) {
95
+ // collider.update(dt);
96
+ // }
97
+ // });
98
+ }
99
+ for (var _i = 0, _b = entities.entities_with_components(CollideComponent_1.BoxCollider); _i < _b.length; _i++) {
100
+ var entt = _b[_i];
101
+ var comp = entt.getComponent(CollideComponent_1.BoxCollider);
102
+ comp.update(dt, draw);
103
+ }
104
+ for (var _c = 0, _d = entities.entities_with_components(CollideComponent_1.CircleCollider); _c < _d.length; _c++) {
105
+ var entt = _d[_c];
106
+ var comp = entt.getComponent(CollideComponent_1.CircleCollider);
107
+ comp.update(dt, draw);
108
+ }
109
+ for (var _e = 0, _f = entities.entities_with_components(CollideComponent_1.PolygonCollider); _e < _f.length; _e++) {
110
+ var entt = _f[_e];
111
+ var comp = entt.getComponent(CollideComponent_1.PolygonCollider);
112
+ comp.update(dt, draw);
113
+ }
114
+ this._contracts.forEach(function (contract) {
115
+ var col1 = contract._collider1;
116
+ var col2 = contract._collider2;
117
+ if (!cc.sys.isObjectValid(col1.node.instance) ||
118
+ !cc.sys.isObjectValid(col2.node.instance) ||
119
+ !col1.node ||
120
+ !col2.node ||
121
+ !col1.node.active ||
122
+ !col2.node.active) {
123
+ return;
124
+ }
125
+ var type = contract.updateState();
126
+ switch (type) {
127
+ case CollideComponent_1.CollisionType.ENTER: {
128
+ if (col1.props.onCollisionEnter) {
129
+ col1.props.onCollisionEnter(col2);
130
+ }
131
+ if (col2.props.onCollisionEnter) {
132
+ col2.props.onCollisionEnter(col1);
133
+ }
134
+ break;
135
+ }
136
+ case CollideComponent_1.CollisionType.STAY:
137
+ if (col1.props.onCollisionStay) {
138
+ col1.props.onCollisionStay(col2);
139
+ }
140
+ if (col2.props.onCollisionStay) {
141
+ col2.props.onCollisionStay(col1);
142
+ }
143
+ break;
144
+ case CollideComponent_1.CollisionType.EXIT:
145
+ if (col1.props.onCollisionExit) {
146
+ col1.props.onCollisionExit(col2);
147
+ }
148
+ if (col2.props.onCollisionExit) {
149
+ col2.props.onCollisionExit(col1);
150
+ }
151
+ break;
152
+ default:
153
+ break;
154
+ }
155
+ });
156
+ };
157
+ CollideSystem.prototype.addCollider = function (collider) {
158
+ var _this = this;
159
+ this.listColliders.forEach(function (col) {
160
+ if (shouldCollider(col, collider)) {
161
+ _this._contracts.push(new CollideComponent_1.Contract(col, collider));
162
+ }
163
+ });
164
+ this.listColliders.push(collider);
165
+ };
166
+ CollideSystem.prototype.removeCollider = function (collider) {
167
+ this.removeColliders.push(collider);
168
+ };
169
+ CollideSystem.prototype.addDebugNode = function (root) {
170
+ this.debugGraphics = new cc.DrawNode();
171
+ this.debugGraphics.zIndex = 1000;
172
+ root.addChild(this.debugGraphics);
173
+ };
174
+ CollideSystem.prototype.toggleDebugDraw = function (enable) {
175
+ if (enable === void 0) { enable = true; }
176
+ this.enabledDebugDraw = enable;
177
+ this.addDebugNode(cc.director.getRunningScene());
178
+ };
179
+ return CollideSystem;
180
+ }());
181
+ exports.CollideSystem = CollideSystem;
@@ -0,0 +1,2 @@
1
+ export declare function setupCollider(colliderMatrix?: any, debug?: boolean): void;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/collider/index.ts"],"names":[],"mappings":"AAGA,wBAAgB,aAAa,CAAC,cAAc,CAAC,KAAA,EAAE,KAAK,UAAQ,QAS3D"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setupCollider = setupCollider;
4
+ var gworld_1 = require("../gworld");
5
+ var CollideSystem_1 = require("./CollideSystem");
6
+ function setupCollider(colliderMatrix, debug) {
7
+ if (debug === void 0) { debug = false; }
8
+ gworld_1.GameWorld.Instance.systems.add(CollideSystem_1.CollideSystem);
9
+ gworld_1.GameWorld.Instance.listUpdate.push(CollideSystem_1.CollideSystem);
10
+ gworld_1.GameWorld.Instance.systems.configureOnce(CollideSystem_1.CollideSystem);
11
+ var collideSystem = gworld_1.GameWorld.Instance.systems.get(CollideSystem_1.CollideSystem);
12
+ if (colliderMatrix) {
13
+ collideSystem.colliderMatrix = colliderMatrix;
14
+ }
15
+ collideSystem.toggleDebugDraw(debug);
16
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"PixiDragonBonesSprite.d.ts","sourceRoot":"","sources":["../../src/dragonbones/PixiDragonBonesSprite.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB;;;;;;CAkCpC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,GA+DlC,CAAC"}
1
+ {"version":3,"file":"PixiDragonBonesSprite.d.ts","sourceRoot":"","sources":["../../src/dragonbones/PixiDragonBonesSprite.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB;;;;;;CA8BpC,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,GA+DlC,CAAA"}
@@ -12,15 +12,15 @@ exports.SharedDragonBonesManager = {
12
12
  }
13
13
  var loader = new PIXI.Loader();
14
14
  loader
15
- .add("ske" + key, key)
16
- .add("texJson" + key, texJsonUrl)
17
- .add("texPng" + key, texPngUrl)
15
+ .add("ske".concat(key), key)
16
+ .add("texJson".concat(key), texJsonUrl)
17
+ .add("texPng".concat(key), texPngUrl)
18
18
  .load(function (loader, resources) {
19
- var dragonData = _this.factory.parseDragonBonesData(resources["ske" + key].data, key);
20
- _this.factory.parseTextureAtlasData(resources["texJson" + key].data, resources["texPng" + key].texture, key);
19
+ var dragonData = _this.factory.parseDragonBonesData(resources["ske".concat(key)].data, key);
20
+ _this.factory.parseTextureAtlasData(resources["texJson".concat(key)].data, resources["texPng".concat(key)].texture, key);
21
21
  _this.assets[key] = {
22
22
  dragonData: dragonData,
23
- texture: resources["texPng" + key].texture
23
+ texture: resources["texPng".concat(key)].texture,
24
24
  };
25
25
  });
26
26
  },
@@ -29,12 +29,12 @@ exports.SharedDragonBonesManager = {
29
29
  var armatureNames = this.assets[key].dragonData.armatureNames;
30
30
  var armatureName = armatureNames[0];
31
31
  return this.factory.buildArmatureDisplay(armatureName, key);
32
- }
32
+ },
33
33
  };
34
34
  exports.PixiDragonBonesSprite = cc.Sprite.extend({
35
35
  ctor: function (config) {
36
36
  this._super();
37
- this._canvas = document.createElement("canvas");
37
+ this._canvas = document.createElement('canvas');
38
38
  this._canvas.width = config.width || 1024;
39
39
  this._canvas.height = config.height || 1024;
40
40
  this._pixiApp = new PIXI.Application({
@@ -45,7 +45,7 @@ exports.PixiDragonBonesSprite = cc.Sprite.extend({
45
45
  transparent: true, // bắt buộc để alpha hoạt động
46
46
  clearBeforeRender: true, // xoá trước khi vẽ frame mới
47
47
  preserveDrawingBuffer: true, // giúp lấy ảnh từ canvas
48
- antialias: true
48
+ antialias: true,
49
49
  });
50
50
  this._texture = new cc.Texture2D();
51
51
  this._texture.initWithElement(this._canvas);
@@ -59,7 +59,7 @@ exports.PixiDragonBonesSprite = cc.Sprite.extend({
59
59
  _setupArmature: function () {
60
60
  var display = exports.SharedDragonBonesManager.buildArmatureDisplay(this._config.ske);
61
61
  if (!display) {
62
- console.error("Không thể build armature:", this._config.armatureName);
62
+ console.error('Không thể build armature:', this._config.armatureName);
63
63
  return;
64
64
  }
65
65
  display.animation.play(this._config.animationName, 0, this._config.playTimes);
@@ -82,5 +82,5 @@ exports.PixiDragonBonesSprite = cc.Sprite.extend({
82
82
  this._pixiApp.destroy(true, { children: true });
83
83
  this._canvas.remove();
84
84
  this._super();
85
- }
85
+ },
86
86
  });
@@ -0,0 +1,77 @@
1
+ /**
2
+ * The MIT License (MIT)
3
+ *
4
+ * Copyright (c) 2012-2018 DragonBones team and other contributors
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
7
+ * this software and associated documentation files (the "Software"), to deal in
8
+ * the Software without restriction, including without limitation the rights to
9
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
10
+ * the Software, and to permit persons to whom the Software is furnished to do so,
11
+ * subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be included in all
14
+ * copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
18
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
19
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
20
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
+ */
23
+ import { Armature, EventObject, EventStringType, IArmatureProxy } from '@cocos/dragonbones-js';
24
+ export declare class CocosArmatureDisplay extends cc.Sprite implements IArmatureProxy {
25
+ /**
26
+ * @private
27
+ */
28
+ debugDraw: boolean;
29
+ private _debugDraw;
30
+ private _armature;
31
+ private _debugDrawer;
32
+ /**
33
+ * @inheritDoc
34
+ */
35
+ dbInit(armature: Armature): void;
36
+ /**
37
+ * @inheritDoc
38
+ */
39
+ dbClear(): void;
40
+ /**
41
+ * @inheritDoc
42
+ */
43
+ dbUpdate(): void;
44
+ /**
45
+ * @inheritDoc
46
+ */
47
+ dispose(disposeProxy?: boolean): void;
48
+ /**
49
+ * @inheritDoc
50
+ */
51
+ destroy(): void;
52
+ /**
53
+ * @private
54
+ */
55
+ dispatchDBEvent(type: EventStringType, eventObject: EventObject): void;
56
+ /**
57
+ * @inheritDoc
58
+ */
59
+ hasDBEventListener(type: EventStringType): boolean;
60
+ /**
61
+ * @inheritDoc
62
+ */
63
+ addDBEventListener(type: EventStringType, listener: (event: EventObject) => void, target: any): void;
64
+ /**
65
+ * @inheritDoc
66
+ */
67
+ removeDBEventListener(type: EventStringType, listener: (event: EventObject) => void, target: any): void;
68
+ /**
69
+ * @inheritDoc
70
+ */
71
+ get armature(): Armature;
72
+ /**
73
+ * @inheritDoc
74
+ */
75
+ get animation(): Animation;
76
+ }
77
+ //# sourceMappingURL=CocosArmatureDisplay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CocosArmatureDisplay.d.ts","sourceRoot":"","sources":["../../../src/dragonbones/cocos/CocosArmatureDisplay.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,QAAQ,EAAgC,WAAW,EAAE,eAAe,EAAE,cAAc,EAA0B,MAAM,uBAAuB,CAAC;AAErJ,qBAAa,oBAAqB,SAAQ,EAAE,CAAC,MAAO,YAAW,cAAc;IAC3E;;OAEG;IACI,SAAS,UAAS;IACzB,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,YAAY,CAA0B;IAC9C;;OAEG;IACI,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAGvC;;OAEG;IACI,OAAO,IAAI,IAAI;IAUtB;;OAEG;IACI,QAAQ,IAAI,IAAI;IAyGvB;;OAEG;IACI,OAAO,CAAC,YAAY,UAAO,GAAG,IAAI;IAQzC;;OAEG;IACI,OAAO,IAAI,IAAI;IAGtB;;OAEG;IACI,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI;IAG7E;;OAEG;IACI,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO;IAIzD;;OAEG;IACI,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI;IAG3G;;OAEG;IACI,qBAAqB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI;IAG9G;;OAEG;IACH,IAAW,QAAQ,IAAI,QAAQ,CAE9B;IACD;;OAEG;IACH,IAAW,SAAS,IAAI,SAAS,CAEhC;CACF"}