@safe-engine/cocos 2.5.11 → 2.5.13

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 +1 @@
1
- {"version":3,"file":"CollideComponent.d.ts","sourceRoot":"","sources":["../../src/collider/CollideComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAanC,UAAU,aAAc,SAAQ,kBAAkB,CAAC,QAAQ,CAAC;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzB,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC5C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC3C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;CAC5C;AACD,qBAAa,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IAC5D,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAK;IACtC,cAAc,EAAE,IAAI,GAAG,EAAE,CAAC,KAAK,CAAA;IAC/B,YAAY,MAAA;IACZ,KAAK,EAAE,EAAE,CAAC,IAAI,CAAsB;IACpC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAsB;IAGvC,OAAO;IAKP,IAAI,KAAK;;;;;;;;;;;;;;;;;;;;;MAKR;CACF;AAED,UAAU,gBAAiB,SAAQ,kBAAkB,CAAC,WAAW,CAAC;IAChE,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AACD,qBAAa,WAAY,SAAQ,QAAQ,CAAC,aAAa,GAAG,gBAAgB,CAAC;IACzE,IAAI,IAAI,IAII,EAAE,CAAC,IAAI,CAFlB;IAED,IAAI,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAGlB;IAED,MAAM,CAAC,EAAE,KAAA,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ;CA6B7B;AAED,UAAU,mBAAoB,SAAQ,kBAAkB,CAAC,cAAc,CAAC;IACtE,MAAM,EAAE,MAAM,CAAA;CACf;AACD,qBAAa,cAAe,SAAQ,QAAQ,CAAC,aAAa,GAAG,mBAAmB,CAAC;IAC/E,MAAM,CAAC,EAAE,KAAA,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ;CAuB7B;AAED,UAAU,oBAAqB,SAAQ,kBAAkB,CAAC,eAAe,CAAC;IACxE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;CACzC;AAED,qBAAa,eAAgB,SAAQ,QAAQ,CAAC,aAAa,GAAG,oBAAoB,CAAC;IACjF,IAAI,MAAM,IAAI,IAAI,EAAE,CAUnB;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAExB;IAED,MAAM,CAAC,EAAE,KAAA,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ;CAoB7B;AAED,oBAAY,aAAa;IACvB,IAAI,IAAA;IACJ,KAAK,IAAA;IACL,IAAI,IAAA;IACJ,IAAI,IAAA;CACL;AASD,qBAAa,QAAQ;IACnB,UAAU,EAAE,QAAQ,CAAA;IACpB,UAAU,EAAE,QAAQ,CAAA;IACpB,SAAS,EAAE,OAAO,CAAA;IAClB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,eAAe,EAAE,OAAO,CAAA;IACxB,gBAAgB,EAAE,OAAO,CAAA;gBAEb,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ;IAsBpD,WAAW;IAeX,IAAI;CAyBL"}
1
+ {"version":3,"file":"CollideComponent.d.ts","sourceRoot":"","sources":["../../src/collider/CollideComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAanC,UAAU,aAAc,SAAQ,kBAAkB,CAAC,QAAQ,CAAC;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzB,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC5C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC3C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;CAC5C;AACD,qBAAa,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IAC5D,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAK;IACtC,cAAc,EAAE,IAAI,GAAG,EAAE,CAAC,KAAK,CAAA;IAC/B,YAAY,MAAA;IACZ,KAAK,EAAE,EAAE,CAAC,IAAI,CAAsB;IACpC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAsB;IAGvC,OAAO;IAKP,IAAI,KAAK;;;;;;;;;;;;;;;;;;;;;MAKR;CACF;AAED,UAAU,gBAAiB,SAAQ,kBAAkB,CAAC,WAAW,CAAC;IAChE,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AACD,qBAAa,WAAY,SAAQ,QAAQ,CAAC,aAAa,GAAG,gBAAgB,CAAC;IACzE,IAAI,IAAI,IAII,EAAE,CAAC,IAAI,CAFlB;IAED,IAAI,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAGlB;IAED,MAAM,CAAC,EAAE,KAAA,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ;CA8B7B;AAED,UAAU,mBAAoB,SAAQ,kBAAkB,CAAC,cAAc,CAAC;IACtE,MAAM,EAAE,MAAM,CAAA;CACf;AACD,qBAAa,cAAe,SAAQ,QAAQ,CAAC,aAAa,GAAG,mBAAmB,CAAC;IAC/E,MAAM,CAAC,EAAE,KAAA,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ;CAuB7B;AAED,UAAU,oBAAqB,SAAQ,kBAAkB,CAAC,eAAe,CAAC;IACxE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;CACzC;AAED,qBAAa,eAAgB,SAAQ,QAAQ,CAAC,aAAa,GAAG,oBAAoB,CAAC;IACjF,IAAI,MAAM,IAAI,IAAI,EAAE,CAUnB;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAExB;IAED,MAAM,CAAC,EAAE,KAAA,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ;CAoB7B;AAED,oBAAY,aAAa;IACvB,IAAI,IAAA;IACJ,KAAK,IAAA;IACL,IAAI,IAAA;IACJ,IAAI,IAAA;CACL;AASD,qBAAa,QAAQ;IACnB,UAAU,EAAE,QAAQ,CAAA;IACpB,UAAU,EAAE,QAAQ,CAAA;IACpB,SAAS,EAAE,OAAO,CAAA;IAClB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,eAAe,EAAE,OAAO,CAAA;IACxB,gBAAgB,EAAE,OAAO,CAAA;gBAEb,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ;IAsBpD,WAAW;IAeX,IAAI;CAyBL"}
@@ -50,12 +50,13 @@ export class BoxCollider extends Collider {
50
50
  const hh = height * 0.5;
51
51
  const transform = getNodeToWorldTransformAR(this.node);
52
52
  const rect = cc.rect(x - hw, y - hh, width, height);
53
- const rectTrs = cc.rectApplyAffineTransform(rect, transform);
54
- // cc.log(rectTrs);
55
- this._worldPoints[0] = Vec2(rectTrs.x, rectTrs.y);
56
- this._worldPoints[1] = Vec2(rectTrs.x, rectTrs.y + rectTrs.height);
57
- this._worldPoints[2] = Vec2(rectTrs.x + rectTrs.width, rectTrs.y + rectTrs.height);
58
- this._worldPoints[3] = Vec2(rectTrs.x + rectTrs.width, rectTrs.y);
53
+ const tempPoints = [
54
+ Vec2(rect.x, rect.y),
55
+ Vec2(rect.x, rect.y + rect.height),
56
+ Vec2(rect.x + rect.width, rect.y + rect.height),
57
+ Vec2(rect.x + rect.width, rect.y),
58
+ ];
59
+ this._worldPoints = tempPoints.map((p) => cc.pointApplyAffineTransform(p, transform));
59
60
  const listX = this._worldPoints.map(({ x }) => x);
60
61
  const listY = this._worldPoints.map(({ y }) => y);
61
62
  this._preAabb = cloneRect(this._AABB);
@@ -12,9 +12,9 @@ interface DragonBonesProps {
12
12
  animation?: string;
13
13
  playTimes?: Integer;
14
14
  timeScale?: Float;
15
- onAnimationStart?: () => void;
16
- onAnimationEnd?: () => void;
17
- onAnimationComplete?: () => void;
15
+ onAnimationStart?: (animationName?: string) => void;
16
+ onAnimationEnd?: (animationName?: string) => void;
17
+ onAnimationComplete?: (animationName?: string, loopCount?: number) => void;
18
18
  }
19
19
  export declare class DragonBonesComp extends ComponentX<DragonBonesProps & BaseComponentProps<DragonBonesComp>, CocosArmatureDisplay> {
20
20
  setAnimation(name: string, playTimes?: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"DragonBonesComp.d.ts","sourceRoot":"","sources":["../../src/dragonbones/DragonBonesComp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAA;AACvC,OAAO,EAAE,UAAU,EAAU,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AAEtE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,eAAe,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,KAAK,CAAA;IAEjB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC7B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3B,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAA;CACjC;AAED,qBAAa,eAAgB,SAAQ,UAAU,CAAC,gBAAgB,GAAG,kBAAkB,CAAC,eAAe,CAAC,EAAE,oBAAoB,CAAC;IAC3H,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAI;IAQxC,gBAAgB;IAKhB,eAAe,CAAC,IAAI,EAAE,MAAM;IAM5B,QAAQ,CAAC,OAAO,EAAE,OAAO;IAKzB,YAAY,CAAC,SAAS,EAAE,KAAK;CAI9B"}
1
+ {"version":3,"file":"DragonBonesComp.d.ts","sourceRoot":"","sources":["../../src/dragonbones/DragonBonesComp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAA;AACvC,OAAO,EAAE,UAAU,EAAU,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AAEtE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,eAAe,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,KAAK,CAAA;IAEjB,gBAAgB,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACnD,cAAc,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD,mBAAmB,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAC3E;AAED,qBAAa,eAAgB,SAAQ,UAAU,CAAC,gBAAgB,GAAG,kBAAkB,CAAC,eAAe,CAAC,EAAE,oBAAoB,CAAC;IAC3H,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAI;IAQxC,gBAAgB;IAKhB,eAAe,CAAC,IAAI,EAAE,MAAM;IAM5B,QAAQ,CAAC,OAAO,EAAE,OAAO;IAKzB,YAAY,CAAC,SAAS,EAAE,KAAK;CAI9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"DragonBonesSystem.d.ts","sourceRoot":"","sources":["../../src/dragonbones/DragonBonesSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAc,MAAM,EAAE,MAAM,YAAY,CAAA;AAO5E,MAAM,MAAM,oBAAoB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnD,qBAAa,iBAAkB,YAAW,MAAM;IAC9C,SAAS,CAAC,aAAa,EAAE,YAAY;IA4DrC,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM;CAYjE"}
1
+ {"version":3,"file":"DragonBonesSystem.d.ts","sourceRoot":"","sources":["../../src/dragonbones/DragonBonesSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAc,MAAM,EAAE,MAAM,YAAY,CAAA;AAO5E,MAAM,MAAM,oBAAoB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnD,qBAAa,iBAAkB,YAAW,MAAM;IAC9C,SAAS,CAAC,aAAa,EAAE,YAAY;IA6DrC,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM;CAYjE"}
@@ -25,7 +25,7 @@ export class DragonBonesSystem {
25
25
  // armature.animation.gotoAndPlay('run', 0.2)
26
26
  node.armature.animation.timeScale = timeScale;
27
27
  if (animation) {
28
- const state = node.armature.animation.gotoAndPlayByTime(animation, 0, playTimes);
28
+ node.armature.animation.gotoAndPlayByTime(animation, 0, playTimes);
29
29
  }
30
30
  // console.log('state', state);
31
31
  // if (skin) {
@@ -35,17 +35,17 @@ export class DragonBonesSystem {
35
35
  if (dbComp.props.onAnimationStart)
36
36
  node.armature.eventDispatcher.addDBEventListener(EventObject.START, (event) => {
37
37
  if (dbComp.node.active && dbComp.enabled)
38
- dbComp.props.onAnimationStart();
38
+ dbComp.props.onAnimationStart(event.animationState.name);
39
39
  }, dbComp);
40
40
  if (dbComp.props.onAnimationEnd)
41
41
  node.armature.eventDispatcher.addDBEventListener(EventObject.COMPLETE, (event) => {
42
42
  if (dbComp.node.active && dbComp.enabled)
43
- dbComp.props.onAnimationEnd();
43
+ dbComp.props.onAnimationEnd(event.animationState.name);
44
44
  }, dbComp);
45
45
  if (dbComp.props.onAnimationComplete)
46
46
  node.armature.eventDispatcher.addDBEventListener(EventObject.LOOP_COMPLETE, (event) => {
47
47
  if (dbComp.node.active && dbComp.enabled)
48
- dbComp.props.onAnimationComplete();
48
+ dbComp.props.onAnimationComplete(event.animationState.name, event.animationState.currentPlayTimes);
49
49
  }, dbComp);
50
50
  });
51
51
  event_manager.subscribe(EventTypes.ComponentRemoved, DragonBonesComp, ({ component }) => {
@@ -10,6 +10,7 @@ interface ButtonCompProps {
10
10
  normalImage?: string;
11
11
  selectedImage?: string;
12
12
  disableImage?: string;
13
+ param?: string;
13
14
  zoomScale?: number;
14
15
  onPress?: (target: ButtonComp) => void;
15
16
  }
@@ -72,5 +73,16 @@ interface WidgetCompProps {
72
73
  }
73
74
  export declare class WidgetComp extends ComponentX<WidgetCompProps & BaseComponentProps<WidgetComp>, cc.Node> {
74
75
  }
76
+ interface GridLayoutCompProps {
77
+ top?: Integer;
78
+ left?: Integer;
79
+ spaceX?: Integer;
80
+ spaceY?: Integer;
81
+ columns?: Integer;
82
+ }
83
+ export declare class GridLayoutComp extends ComponentX<GridLayoutCompProps & BaseComponentProps<GridLayoutComp>, cc.Node> {
84
+ start(): void;
85
+ doLayout(): void;
86
+ }
75
87
  export {};
76
88
  //# sourceMappingURL=GUIComponent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GUIComponent.d.ts","sourceRoot":"","sources":["../../src/gui/GUIComponent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GUIComponent.d.ts","sourceRoot":"","sources":["../../src/gui/GUIComponent.ts"],"names":[],"mappings":"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"}
@@ -56,6 +56,22 @@ export class InputComp extends ComponentX {
56
56
  }
57
57
  export class WidgetComp extends ComponentX {
58
58
  }
59
+ export class GridLayoutComp extends ComponentX {
60
+ start() {
61
+ this.doLayout();
62
+ }
63
+ doLayout() {
64
+ const { columns = 5, spaceX = 0, spaceY = 0, left = 0, top = 0 } = this.props;
65
+ const children = this.node.instance.children;
66
+ children.forEach((child, index) => {
67
+ const row = Math.floor(index / columns);
68
+ const column = index % columns;
69
+ const x = left + column * (child.width + spaceX) + child.width / 2;
70
+ const y = -top - row * (child.height + spaceY) - child.height / 2;
71
+ child.setPosition(x, y);
72
+ });
73
+ }
74
+ }
59
75
  Object.defineProperty(ProgressTimerComp.prototype, 'render', { value: render });
60
76
  Object.defineProperty(LabelComp.prototype, 'render', { value: render });
61
77
  Object.defineProperty(ScrollViewComp.prototype, 'render', { value: render });
@@ -8,5 +8,6 @@ export declare class GUISystem implements System {
8
8
  private onAddScrollViewComp;
9
9
  private onAddInputComp;
10
10
  private onAddWidgetComp;
11
+ private onAddGridLayoutComp;
11
12
  }
12
13
  //# sourceMappingURL=GUISystem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GUISystem.d.ts","sourceRoot":"","sources":["../../src/gui/GUISystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoC,MAAM,EAAE,MAAM,YAAY,CAAA;AAMnF,qBAAa,SAAU,YAAW,MAAM;IACtC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAA;IAC1B,SAAS,CAAC,aAAa,EAAE,YAAY;IASrC,OAAO,CAAC,eAAe,CAuBtB;IAED,OAAO,CAAC,sBAAsB,CAc7B;IAED,OAAO,CAAC,cAAc,CAerB;IAED,OAAO,CAAC,mBAAmB,CAU1B;IAED,OAAO,CAAC,cAAc,CAWrB;IAED,OAAO,CAAC,eAAe,CAetB;CAKF"}
1
+ {"version":3,"file":"GUISystem.d.ts","sourceRoot":"","sources":["../../src/gui/GUISystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoC,MAAM,EAAE,MAAM,YAAY,CAAA;AAMnF,qBAAa,SAAU,YAAW,MAAM;IACtC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAA;IAC1B,SAAS,CAAC,aAAa,EAAE,YAAY;IAUrC,OAAO,CAAC,eAAe,CAuBtB;IAED,OAAO,CAAC,sBAAsB,CAc7B;IAED,OAAO,CAAC,cAAc,CAerB;IAED,OAAO,CAAC,mBAAmB,CAU1B;IAED,OAAO,CAAC,cAAc,CAWrB;IAED,OAAO,CAAC,eAAe,CAetB;IAED,OAAO,CAAC,mBAAmB,CAG1B;CAKF"}
@@ -2,7 +2,7 @@ import { EventTypes } from 'entityx-ts';
2
2
  import { NodeComp } from '../core/NodeComp';
3
3
  import { TouchEventRegister } from '../norender';
4
4
  import { Vec2 } from '../polyfills';
5
- import { ButtonComp, FillType, InputComp, LabelComp, ProgressTimerComp, ScrollViewComp, WidgetComp } from './GUIComponent';
5
+ import { ButtonComp, FillType, GridLayoutComp, InputComp, LabelComp, ProgressTimerComp, ScrollViewComp, WidgetComp } from './GUIComponent';
6
6
  export class GUISystem {
7
7
  static defaultFont;
8
8
  configure(event_manager) {
@@ -12,6 +12,7 @@ export class GUISystem {
12
12
  event_manager.subscribe(EventTypes.ComponentAdded, ScrollViewComp, this.onAddScrollViewComp);
13
13
  event_manager.subscribe(EventTypes.ComponentAdded, InputComp, this.onAddInputComp);
14
14
  event_manager.subscribe(EventTypes.ComponentAdded, WidgetComp, this.onAddWidgetComp);
15
+ event_manager.subscribe(EventTypes.ComponentAdded, GridLayoutComp, this.onAddGridLayoutComp);
15
16
  }
16
17
  onAddButtonComp = ({ entity, component: button }) => {
17
18
  const nodeComp = entity.getComponent(NodeComp);
@@ -108,4 +109,8 @@ export class GUISystem {
108
109
  nodeComp.instance.x = left + nodeComp.instance.width * nodeComp.instance.anchorX;
109
110
  }
110
111
  };
112
+ onAddGridLayoutComp = ({ entity, component }) => {
113
+ component.node = entity.getComponent(NodeComp);
114
+ component.doLayout();
115
+ };
111
116
  }
@@ -5,6 +5,7 @@ export declare function scaleTo(t: number, x: number, y?: number): cc.ScaleTo;
5
5
  export declare function scaleBy(t: number, x: number, y?: number): cc.ScaleBy;
6
6
  export declare function rotateBy(t: number, x: number, y?: number): cc.RotateBy;
7
7
  export declare function rotateTo(t: number, x: number, y?: number): cc.RotateTo;
8
+ export declare function progressTo(t: number, p: number): any;
8
9
  export declare function callFunc(cb: () => void, target?: any, data?: any): cc.CallFunc;
9
10
  export declare function sequence(...actions: cc.FiniteTimeAction[]): cc.Sequence;
10
11
  export declare function repeatForever(action: cc.FiniteTimeAction): cc.RepeatForever;
@@ -1 +1 @@
1
- {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/helper/action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEnC,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,aAEzC;AACD,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,aAEzC;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,cAEvD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,cAEvD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,eAExD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,eAExD;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,MAAM,CAAC,KAAA,EAAE,IAAI,CAAC,KAAA,eAEtD;AAED,wBAAgB,QAAQ,CAAC,GAAG,OAAO,EAAE,EAAE,CAAC,gBAAgB,EAAE,eAEzD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,oBAExD;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,OAAO,aAEjE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,KAAK,gBAEpC;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,YAEjD;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,aAEnD;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,KAAK,aAEjC;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,KAAK,cAElC;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,qBAEpD"}
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/helper/action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEnC,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,aAEzC;AACD,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,aAEzC;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,cAEvD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,cAEvD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,eAExD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,eAExD;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,OAE9C;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,MAAM,CAAC,KAAA,EAAE,IAAI,CAAC,KAAA,eAEtD;AAED,wBAAgB,QAAQ,CAAC,GAAG,OAAO,EAAE,EAAE,CAAC,gBAAgB,EAAE,eAEzD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,oBAExD;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,OAAO,aAEjE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,KAAK,gBAEpC;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,YAEjD;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,aAEnD;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,KAAK,aAEjC;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,KAAK,cAElC;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,qBAEpD"}
@@ -16,6 +16,9 @@ export function rotateBy(t, x, y) {
16
16
  export function rotateTo(t, x, y) {
17
17
  return cc.rotateTo(t, x, y);
18
18
  }
19
+ export function progressTo(t, p) {
20
+ return cc.progressTo(t, p);
21
+ }
19
22
  export function callFunc(cb, target, data) {
20
23
  return cc.callFunc(cb, target, data);
21
24
  }
@@ -3,10 +3,12 @@ export declare class TiledSpriteNode extends cc.Sprite {
3
3
  _tileScaleLoc: WebGLUniformLocation;
4
4
  _texSizeLoc: WebGLUniformLocation;
5
5
  _texLoc: WebGLUniformLocation;
6
+ _scaleLoc: WebGLUniformLocation;
7
+ _sizeLoc: WebGLUniformLocation;
6
8
  constructor(file: any);
7
9
  initShader(): void;
8
10
  updateShaderUniforms(): void;
9
11
  setContentSize(w: any, h: any): void;
10
12
  }
11
- export declare function createTiledSprite(src: string, totalW: number, totalH: number): cc.Sprite;
13
+ export declare function createTiledSprite(src: string, totalW: number, totalH: number): TiledSpriteNode;
12
14
  //# sourceMappingURL=TiledSprite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TiledSprite.d.ts","sourceRoot":"","sources":["../../src/render/TiledSprite.ts"],"names":[],"mappings":"AAEA,qBAAa,eAAgB,SAAQ,EAAE,CAAC,MAAM;IAC5C,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAA;IACtB,aAAa,EAAE,oBAAoB,CAAA;IACnC,WAAW,EAAE,oBAAoB,CAAA;IACjC,OAAO,EAAE,oBAAoB,CAAA;gBAEjB,IAAI,KAAA;IAMhB,UAAU;IAqBV,oBAAoB;IAgBpB,cAAc,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA;CAIpB;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAmC5E"}
1
+ {"version":3,"file":"TiledSprite.d.ts","sourceRoot":"","sources":["../../src/render/TiledSprite.ts"],"names":[],"mappings":"AAEA,qBAAa,eAAgB,SAAQ,EAAE,CAAC,MAAM;IAC5C,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAA;IACtB,aAAa,EAAE,oBAAoB,CAAA;IACnC,WAAW,EAAE,oBAAoB,CAAA;IACjC,OAAO,EAAE,oBAAoB,CAAA;IAC7B,SAAS,EAAE,oBAAoB,CAAA;IAC/B,QAAQ,EAAE,oBAAoB,CAAA;gBAElB,IAAI,KAAA;IAMhB,UAAU;IAuBV,oBAAoB;IAkBpB,cAAc,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA;CAIpB;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAS5E"}
@@ -4,9 +4,11 @@ export class TiledSpriteNode extends cc.Sprite {
4
4
  _tileScaleLoc;
5
5
  _texSizeLoc;
6
6
  _texLoc;
7
+ _scaleLoc;
8
+ _sizeLoc;
7
9
  constructor(file) {
8
- super(file);
9
- this.ctor();
10
+ super();
11
+ super.ctor(file);
10
12
  this.initShader();
11
13
  }
12
14
  initShader() {
@@ -24,6 +26,8 @@ export class TiledSpriteNode extends cc.Sprite {
24
26
  this._tileScaleLoc = program.getUniformLocationForName('u_tileScale');
25
27
  this._texSizeLoc = program.getUniformLocationForName('u_texSize');
26
28
  this._texLoc = program.getUniformLocationForName('u_texture');
29
+ this._scaleLoc = program.getUniformLocationForName('u_scale');
30
+ this._sizeLoc = program.getUniformLocationForName('u_size');
27
31
  this.scheduleUpdate();
28
32
  }
29
33
  updateShaderUniforms() {
@@ -32,12 +36,15 @@ export class TiledSpriteNode extends cc.Sprite {
32
36
  const texW = this.texture.width;
33
37
  const texH = this.texture.height;
34
38
  const size = this.getContentSize();
39
+ console.log('TiledSprite updateShaderUniforms', size, texW, texH);
35
40
  const scaleX = size.width / texW;
36
41
  const scaleY = size.height / texH;
37
42
  this._program.use();
38
43
  this._program.setUniformLocationWith2f(this._tileScaleLoc, scaleX, scaleY);
39
44
  this._program.setUniformLocationWith2f(this._texSizeLoc, texW, texH);
40
45
  this._program.setUniformLocationWith1i(this._texLoc, 0);
46
+ this._program.setUniformLocationWith2f(this._scaleLoc, scaleX, scaleY);
47
+ this._program.setUniformLocationWith2f(this._sizeLoc, size.width, size.height);
41
48
  }
42
49
  setContentSize(w, h) {
43
50
  super.setContentSize(w, h);
@@ -45,39 +52,14 @@ export class TiledSpriteNode extends cc.Sprite {
45
52
  }
46
53
  }
47
54
  export function createTiledSprite(src, totalW, totalH) {
48
- // tạo sprite từ input
49
- const tileSprite = new cc.Sprite(src);
50
- // lấy kích thước gốc của texture
51
- const tileW = tileSprite.texture.width;
52
- const tileH = tileSprite.texture.height;
53
- const program = new cc.GLProgram();
54
- program.initWithString(tiledVsh, tieldFsh);
55
- // program.initWithVertexShaderByteArray(vert, frag);
56
- program.addAttribute(cc.ATTRIBUTE_NAME_POSITION, cc.VERTEX_ATTRIB_POSITION);
57
- program.addAttribute(cc.ATTRIBUTE_NAME_COLOR, cc.VERTEX_ATTRIB_COLOR);
58
- program.addAttribute(cc.ATTRIBUTE_NAME_TEX_COORD, cc.VERTEX_ATTRIB_TEX_COORDS);
59
- if (!program.link()) {
60
- console.error('Failed to link shader program');
61
- return;
55
+ const tileSprite = new TiledSpriteNode(src);
56
+ function afterLoaded() {
57
+ tileSprite.setContentSize(totalW, totalH);
58
+ console.log('createTiledSprite', src, totalW, totalH, tileSprite);
62
59
  }
63
- program.updateUniforms();
64
- program.setUniformLocationWith1i(program.getUniformLocationForName('u_texture'), 0);
65
- const tileScaleLoc = program.getUniformLocationForName('u_tileScale');
66
- const texSizeLoc = program.getUniformLocationForName('u_texSize');
67
- const scaleX = totalW / tileW;
68
- const scaleY = totalH / tileH;
69
60
  if (tileSprite.texture._textureLoaded)
70
61
  afterLoaded();
71
62
  else
72
63
  tileSprite.texture.addLoadedEventListener(afterLoaded);
73
- function afterLoaded() {
74
- // program.use()
75
- program.setUniformLocationWith2f(texSizeLoc, tileW, tileH);
76
- program.setUniformLocationWith2f(tileScaleLoc, scaleX, scaleY);
77
- tileSprite.setShaderProgram(program);
78
- // nếu dùng batch node hoặc spriteframe atlas, đảm bảo texture unit đúng
79
- }
80
- // tileSprite.setContentSize(totalW, totalH)
81
- tileSprite.setScale(scaleX, scaleY);
82
64
  return tileSprite;
83
65
  }
@@ -1,3 +1,3 @@
1
1
  export declare const tieldFsh = "\n#ifdef GL_ES\nprecision mediump float;\n#endif\n\nvarying vec2 v_texCoord;\nvarying vec4 v_fragmentColor;\n\nuniform sampler2D u_texture;\nuniform vec2 u_tileScale;\nuniform vec2 u_texSize;\n\nvoid main()\n{\n // scale UV to tile space\n vec2 uv = v_texCoord * u_tileScale;\n\n // wrap using fract\n vec2 uvw = fract(uv);\n\n // avoid linear-filter seams: push UVs slightly away from exact 0.0/1.0 edges\n // compute texel size in uv-space\n vec2 texel = 1.0 / u_texSize;\n\n // shrink usable range slightly to avoid sampling border when linear filter is used\n // the factor 1.0 - 2.0*texel moves the uv into [texel, 1-texel]\n uvw = uvw * (1.0 - 2.0 * texel) + texel;\n\n vec4 color = texture2D(u_texture, uvw);\n\n gl_FragColor = color * v_fragmentColor;\n}\n";
2
- export declare const tiledVsh = "\nattribute vec4 a_position;\nattribute vec2 a_texCoord;\nattribute vec4 a_color;\n\n#ifdef GL_ES\nvarying mediump vec2 v_texCoord;\nvarying lowp vec4 v_fragmentColor;\n#else\nvarying vec2 v_texCoord;\nvarying vec4 v_fragmentColor;\n#endif\n\nvoid main() {\n gl_Position = CC_PMatrix * a_position;\n v_texCoord = a_texCoord;\n v_fragmentColor = a_color;\n}\n";
2
+ export declare const tiledVsh = "\nattribute vec4 a_position;\nattribute vec2 a_texCoord;\nattribute vec4 a_color;\n\n#ifdef GL_ES\nvarying mediump vec2 v_texCoord;\nvarying lowp vec4 v_fragmentColor;\n#else\nvarying vec2 v_texCoord;\nvarying vec4 v_fragmentColor;\n#endif\nuniform vec2 u_scale;\nuniform vec2 u_size;\n\nvoid main() {\n vec2 pivot = u_size * 0.5;\n vec4 pos = a_position;\n // pos.xy *= u_scale; // scale h\u00ECnh \u1EA3nh\n pos.xy = (pos.xy - pivot) * u_scale + pivot;\n gl_Position = CC_PMatrix * pos;\n v_texCoord = a_texCoord;\n v_fragmentColor = a_color;\n}\n";
3
3
  //# sourceMappingURL=shader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shader.d.ts","sourceRoot":"","sources":["../../src/render/shader.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,qyBAgCpB,CAAA;AACD,eAAO,MAAM,QAAQ,oXAkBpB,CAAA"}
1
+ {"version":3,"file":"shader.d.ts","sourceRoot":"","sources":["../../src/render/shader.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,qyBAgCpB,CAAA;AACD,eAAO,MAAM,QAAQ,ikBAwBpB,CAAA"}
@@ -43,9 +43,15 @@ varying lowp vec4 v_fragmentColor;
43
43
  varying vec2 v_texCoord;
44
44
  varying vec4 v_fragmentColor;
45
45
  #endif
46
+ uniform vec2 u_scale;
47
+ uniform vec2 u_size;
46
48
 
47
49
  void main() {
48
- gl_Position = CC_PMatrix * a_position;
50
+ vec2 pivot = u_size * 0.5;
51
+ vec4 pos = a_position;
52
+ // pos.xy *= u_scale; // scale hình ảnh
53
+ pos.xy = (pos.xy - pivot) * u_scale + pivot;
54
+ gl_Position = CC_PMatrix * pos;
49
55
  v_texCoord = a_texCoord;
50
56
  v_fragmentColor = a_color;
51
57
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@safe-engine/cocos",
3
- "version": "2.5.11",
3
+ "version": "2.5.13",
4
4
  "description": "safe-engine with cocos renderer support",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",