@safe-engine/cocos 1.6.5 → 1.7.1

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 (36) hide show
  1. package/dist/app.d.ts +2 -2
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/app.js +36 -26
  4. package/dist/box2d-wasm/PhysicsComponent.d.ts +2 -0
  5. package/dist/box2d-wasm/PhysicsComponent.d.ts.map +1 -1
  6. package/dist/box2d-wasm/PhysicsComponent.js +16 -3
  7. package/dist/box2d-wasm/PhysicsSprite.d.ts +1 -0
  8. package/dist/box2d-wasm/PhysicsSprite.d.ts.map +1 -1
  9. package/dist/box2d-wasm/PhysicsSprite.js +3 -4
  10. package/dist/box2d-wasm/PhysicsSystem.d.ts +1 -2
  11. package/dist/box2d-wasm/PhysicsSystem.d.ts.map +1 -1
  12. package/dist/box2d-wasm/PhysicsSystem.js +33 -29
  13. package/dist/gworld/components/AnimationComponent.d.ts +2 -2
  14. package/dist/gworld/components/CollideComponent.d.ts +3 -3
  15. package/dist/gworld/systems/CollideSystem.d.ts +1 -2
  16. package/dist/gworld/systems/CollideSystem.d.ts.map +1 -1
  17. package/dist/gworld/systems/CollideSystem.js +2 -12
  18. package/package.json +1 -1
  19. package/dist/dragonbones/cocos/CocosArmatureDisplay.d.ts +0 -77
  20. package/dist/dragonbones/cocos/CocosArmatureDisplay.d.ts.map +0 -1
  21. package/dist/dragonbones/cocos/CocosArmatureDisplay.js +0 -227
  22. package/dist/dragonbones/cocos/CocosFactory.d.ts +0 -128
  23. package/dist/dragonbones/cocos/CocosFactory.d.ts.map +0 -1
  24. package/dist/dragonbones/cocos/CocosFactory.js +0 -231
  25. package/dist/dragonbones/cocos/CocosSlot.d.ts +0 -49
  26. package/dist/dragonbones/cocos/CocosSlot.d.ts.map +0 -1
  27. package/dist/dragonbones/cocos/CocosSlot.js +0 -385
  28. package/dist/dragonbones/cocos/CocosTextureAtlasData.d.ts +0 -53
  29. package/dist/dragonbones/cocos/CocosTextureAtlasData.d.ts.map +0 -1
  30. package/dist/dragonbones/cocos/CocosTextureAtlasData.js +0 -158
  31. package/dist/dragonbones/dragonBones.d.ts +0 -3
  32. package/dist/dragonbones/dragonBones.d.ts.map +0 -1
  33. package/dist/dragonbones/dragonBones.js +0 -4788
  34. package/dist/helper/NodePool.d.ts +0 -9
  35. package/dist/helper/NodePool.d.ts.map +0 -1
  36. package/dist/helper/NodePool.js +0 -29
package/dist/app.d.ts CHANGED
@@ -6,10 +6,10 @@ interface RunOptions {
6
6
  id: string;
7
7
  renderMode: 0 | 1 | 2;
8
8
  }
9
- export declare function startGame(option: RunOptions, { width, height }: {
9
+ export declare function startGame(defaultFont: string, { width, height }: {
10
10
  width: any;
11
11
  height: any;
12
- }, cb: () => void): void;
12
+ }, option?: Partial<RunOptions>): Promise<void>;
13
13
  export declare function loadAll(assets: string[], cb: (progress: number) => void): void;
14
14
  export declare function loadJsonFromCache<T>(filePath: string): T;
15
15
  export declare const audioEngine: typeof cc.audioEngine;
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAMA,wBAAgB,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,QAc7C;AACD,UAAU,UAAU;IAClB,SAAS,EAAE,CAAC,GAAG,CAAC,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;CACtB;AACD,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;;;CAAA,EAAE,EAAE,EAAE,MAAM,IAAI,QA+B9E;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAO,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,QA4B5E;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAIxD;AAED,eAAO,MAAM,WAAW,uBAAiB,CAAA"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAMA,wBAAgB,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,QAc7C;AACD,UAAU,UAAU;IAClB,SAAS,EAAE,CAAC,GAAG,CAAC,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;CACtB;AACD,wBAAsB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;;;CAAA,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,iBAwCnG;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAO,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,QA4B5E;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAIxD;AAED,eAAO,MAAM,WAAW,uBAAiB,CAAA"}
package/dist/app.js CHANGED
@@ -18,33 +18,43 @@ export function initWorld(defaultFont) {
18
18
  guiSystem.defaultFont = defaultFont;
19
19
  }
20
20
  }
21
- export function startGame(option, { width, height }, cb) {
22
- class BootScene extends cc.Scene {
23
- constructor() {
24
- super();
25
- super.ctor(); // always call this for compatibility with cocos2dx JS Javascript class system
26
- this.scheduleUpdate();
21
+ export async function startGame(defaultFont, { width, height }, option) {
22
+ return new Promise((resolve) => {
23
+ class BootScene extends cc.Scene {
24
+ constructor() {
25
+ super();
26
+ super.ctor(); // always call this for compatibility with cocos2dx JS Javascript class system
27
+ this.scheduleUpdate();
28
+ }
29
+ onEnter() {
30
+ super.onEnter();
31
+ initWorld(defaultFont);
32
+ resolve();
33
+ }
34
+ update(dt) {
35
+ GameWorld.Instance.update(dt);
36
+ }
27
37
  }
28
- onEnter() {
29
- super.onEnter();
30
- cb();
31
- }
32
- update(dt) {
33
- GameWorld.Instance.update(dt);
34
- }
35
- }
36
- cc._isContextMenuEnable = true;
37
- cc.game.run(option, function onStart() {
38
- // Pass true to enable retina display, disabled by default to improve performance
39
- cc.view.enableRetina(cc.sys.os === cc.sys.OS_IOS);
40
- // Adjust viewport meta
41
- cc.view.adjustViewPort(true);
42
- // Setup the resolution policy and design resolution size
43
- const policy = width > height ? cc.ResolutionPolicy.FIXED_HEIGHT : cc.ResolutionPolicy.FIXED_WIDTH;
44
- cc.view.setDesignResolutionSize(width, height, policy);
45
- // The game will be resized when browser size change
46
- cc.view.resizeWithBrowserSize(true);
47
- cc.director.runScene(new BootScene());
38
+ cc._isContextMenuEnable = true;
39
+ cc.game.run({
40
+ debugMode: 1,
41
+ showFPS: false,
42
+ frameRate: 60,
43
+ id: 'gameCanvas',
44
+ renderMode: 1,
45
+ ...option || {},
46
+ }, function onStart() {
47
+ // Pass true to enable retina display, disabled by default to improve performance
48
+ cc.view.enableRetina(cc.sys.os === cc.sys.OS_IOS);
49
+ // Adjust viewport meta
50
+ cc.view.adjustViewPort(true);
51
+ // Setup the resolution policy and design resolution size
52
+ const policy = width > height ? cc.ResolutionPolicy.FIXED_HEIGHT : cc.ResolutionPolicy.FIXED_WIDTH;
53
+ cc.view.setDesignResolutionSize(width, height, policy);
54
+ // The game will be resized when browser size change
55
+ cc.view.resizeWithBrowserSize(true);
56
+ cc.director.runScene(new BootScene());
57
+ });
48
58
  });
49
59
  }
50
60
  export function loadAll(assets = [], cb) {
@@ -20,6 +20,8 @@ export declare class RigidBody extends NoRenderComponentX<RigidBodyProps> {
20
20
  physicSprite: PhysicsSprite;
21
21
  set linearVelocity(vel: Vec2);
22
22
  get linearVelocity(): Vec2;
23
+ applyForceToCenter(vel: Vec2): void;
24
+ applyLinearImpulseToCenter(vel: Vec2): void;
23
25
  set position(pos: Vec2);
24
26
  get position(): Vec2;
25
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PhysicsComponent.d.ts","sourceRoot":"","sources":["../../src/box2d-wasm/PhysicsComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAG/C,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAChB,OAAO,CAAC,EAAE,KAAK,CAAA;IACf,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAA;IAChB,YAAY,CAAC,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;IAC3C,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;IACzC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,KAAA,KAAK,IAAI,CAAA;IACjD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,KAAA,KAAK,IAAI,CAAA;CACvD;AAED,qBAAa,SAAU,SAAQ,kBAAkB,CAAC,cAAc,CAAC;IAC/D,IAAI,EAAE,KAAK,CAAC,MAAM,CAAA;IAClB,YAAY,EAAE,aAAa,CAAA;IAC3B,IAAI,cAAc,CAAC,GAAG,EAAE,IAAI,EAK3B;IAED,IAAI,cAAc,IAPM,IAAI,CAa3B;IAED,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,EASrB;IAED,IAAI,QAAQ,IAXM,IAAI,CAarB;CACF;AAED,UAAU,uBAAuB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC1B;AACD,qBAAa,kBAAmB,SAAQ,kBAAkB,CAAC,uBAAuB,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;CAS3H;AACD,UAAU,0BAA0B;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC1B;AACD,qBAAa,qBAAsB,SAAQ,kBAAkB,CAAC,0BAA0B,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;CAAG;AACxI,UAAU,2BAA2B;IACnC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;IACxC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC1B;AACD,qBAAa,sBAAuB,SAAQ,kBAAkB,CAAC,2BAA2B,GAAG,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;CAAG"}
1
+ {"version":3,"file":"PhysicsComponent.d.ts","sourceRoot":"","sources":["../../src/box2d-wasm/PhysicsComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAG/C,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAChB,OAAO,CAAC,EAAE,KAAK,CAAA;IACf,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAA;IAChB,YAAY,CAAC,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;IAC3C,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;IACzC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,KAAA,KAAK,IAAI,CAAA;IACjD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,KAAA,KAAK,IAAI,CAAA;CACvD;AAED,qBAAa,SAAU,SAAQ,kBAAkB,CAAC,cAAc,CAAC;IAC/D,IAAI,EAAE,KAAK,CAAC,MAAM,CAAA;IAClB,YAAY,EAAE,aAAa,CAAA;IAC3B,IAAI,cAAc,CAAC,GAAG,EAAE,IAAI,EAK3B;IAED,IAAI,cAAc,IAPM,IAAI,CAa3B;IAED,kBAAkB,CAAC,GAAG,EAAE,IAAI;IAO5B,0BAA0B,CAAC,GAAG,EAAE,IAAI;IAQpC,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,EASrB;IAED,IAAI,QAAQ,IAXM,IAAI,CAarB;CACF;AAED,UAAU,uBAAuB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC1B;AACD,qBAAa,kBAAmB,SAAQ,kBAAkB,CAAC,uBAAuB,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;CAS3H;AACD,UAAU,0BAA0B;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC1B;AACD,qBAAa,qBAAsB,SAAQ,kBAAkB,CAAC,0BAA0B,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;CAAG;AACxI,UAAU,2BAA2B;IACnC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;IACxC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC1B;AACD,qBAAa,sBAAuB,SAAQ,kBAAkB,CAAC,2BAA2B,GAAG,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;CAAG"}
@@ -8,20 +8,33 @@ export class RigidBody extends NoRenderComponentX {
8
8
  if (!this.node) {
9
9
  return;
10
10
  }
11
- this.physicSprite.getBody().SetLinearVelocity(new box2D.b2Vec2(vel.x, vel.y));
11
+ this.body.SetLinearVelocity(new box2D.b2Vec2(vel.x, vel.y));
12
12
  }
13
13
  get linearVelocity() {
14
14
  if (!this.node) {
15
15
  return Vec2.ZERO;
16
16
  }
17
- const vel = this.physicSprite.getBody().GetLinearVelocity();
17
+ const vel = this.body.GetLinearVelocity();
18
18
  return Vec2(vel);
19
19
  }
20
+ applyForceToCenter(vel) {
21
+ if (!this.node) {
22
+ return;
23
+ }
24
+ this.body.ApplyForceToCenter(new box2D.b2Vec2(vel.x, vel.y), true);
25
+ }
26
+ applyLinearImpulseToCenter(vel) {
27
+ if (!this.node) {
28
+ return;
29
+ }
30
+ // console.log('applyLinearImpulseToCenter', new box2D.b2Vec2(vel.x, vel.y))
31
+ this.body.ApplyLinearImpulseToCenter(new box2D.b2Vec2(vel.x, vel.y), true);
32
+ }
20
33
  set position(pos) {
21
34
  this.physicSprite.node.setPosition(pos.x, pos.y);
22
35
  const physicsPos = new box2D.b2Vec2(pos.x, pos.y);
23
36
  // console.log('SetTransform', pos, physicsPos)
24
- const body = this.physicSprite.getBody();
37
+ const body = this.body;
25
38
  body.SetLinearVelocity(new box2D.b2Vec2(0, 0));
26
39
  body.SetAngularVelocity(0);
27
40
  body.SetAwake(true);
@@ -4,6 +4,7 @@ export declare class PhysicsSprite {
4
4
  constructor(node: cc.Node, body: Box2D.b2Body);
5
5
  update(dt: number): void;
6
6
  getBody(): Box2D.b2Body;
7
+ set position(val: Box2D.b2Vec2);
7
8
  get x(): number;
8
9
  get y(): number;
9
10
  get angle(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"PhysicsSprite.d.ts","sourceRoot":"","sources":["../../src/box2d-wasm/PhysicsSprite.ts"],"names":[],"mappings":"AAEA,qBAAa,aAAa;IACxB,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;IACb,WAAW,EAAE,KAAK,CAAC,MAAM,CAAA;gBAEb,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM;IAM7C,MAAM,CAAC,EAAE,EAAE,MAAM;IAkBjB,OAAO;IAeP,IAAI,CAAC,WAEJ;IAED,IAAI,CAAC,WAEJ;IAMD,IAAI,KAAK,WAER;IAED,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI;CAGxB"}
1
+ {"version":3,"file":"PhysicsSprite.d.ts","sourceRoot":"","sources":["../../src/box2d-wasm/PhysicsSprite.ts"],"names":[],"mappings":"AAEA,qBAAa,aAAa;IACxB,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;IACb,WAAW,EAAE,KAAK,CAAC,MAAM,CAAA;gBAEb,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM;IAK7C,MAAM,CAAC,EAAE,EAAE,MAAM;IAkBjB,OAAO;IAIP,IAAI,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAE7B;IASD,IAAI,CAAC,WAEJ;IAED,IAAI,CAAC,WAEJ;IAMD,IAAI,KAAK,WAER;IAED,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI;CAGxB"}
@@ -5,7 +5,6 @@ export class PhysicsSprite {
5
5
  constructor(node, body) {
6
6
  this.node = node;
7
7
  this.physicsBody = body;
8
- this.node.schedule(this.update.bind(this), 0, cc.REPEAT_FOREVER, 0);
9
8
  }
10
9
  update(dt) {
11
10
  if (!this.physicsBody) {
@@ -24,9 +23,9 @@ export class PhysicsSprite {
24
23
  getBody() {
25
24
  return this.physicsBody;
26
25
  }
27
- // set position(val: Box2D.b2Vec2) {
28
- // this.physicsBody.setPosition(val)
29
- // }
26
+ set position(val) {
27
+ this.physicsBody.SetTransform(val, this.node.rotation);
28
+ }
30
29
  // set x(val) {
31
30
  // this.physicsBody.setPosition(Vec2(val, this.y))
32
31
  // }
@@ -4,12 +4,11 @@ export declare const DynamicBody = 2;
4
4
  export declare const KinematicBody = 1;
5
5
  export declare const StaticBody = 0;
6
6
  export declare let box2D: typeof Box2D;
7
- export declare function initBox2d(cb: any): void;
7
+ export declare function initBox2d(): Promise<void>;
8
8
  export declare function setColliderMatrix(colliderMatrix?: boolean[][]): void;
9
9
  export declare class PhysicsSystem implements System {
10
10
  world: Box2D.b2World;
11
11
  listRemoveBody: Box2D.b2Body[];
12
- listRemoveShape: Box2D.b2Shape[];
13
12
  colliderMatrix: boolean[][];
14
13
  graphics: cc.DrawNode;
15
14
  addDebug(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"PhysicsSystem.d.ts","sourceRoot":"","sources":["../../src/box2d-wasm/PhysicsSystem.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAc,MAAM,EAAE,MAAM,YAAY,CAAA;AAE5E,OAAO,EAAoC,IAAI,EAAE,MAAM,IAAI,CAAA;AAM3D,eAAO,MAAM,WAAW,IAAI,CAAA;AAC5B,eAAO,MAAM,aAAa,IAAI,CAAA;AAC9B,eAAO,MAAM,UAAU,IAAI,CAAA;AAC3B,eAAO,IAAI,KAAK,EAAE,OAAO,KAAK,CAAA;AAE9B,wBAAgB,SAAS,CAAC,EAAE,KAAA,QAK3B;AASD,wBAAgB,iBAAiB,CAAC,cAAc,cAAW,QAG1D;AAOD,qBAAa,aAAc,YAAW,MAAM;IAC1C,KAAK,EAAE,KAAK,CAAC,OAAO,CAAA;IACpB,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,CAAK;IACnC,eAAe,EAAE,KAAK,CAAC,OAAO,EAAE,CAAK;IACrC,cAAc,cAAW;IACzB,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAA;IAErB,QAAQ;IAKR,SAAS,CAAC,aAAa,EAAE,YAAY;IA4JrC,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM;IAwBhE,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,EAIpB;CACF"}
1
+ {"version":3,"file":"PhysicsSystem.d.ts","sourceRoot":"","sources":["../../src/box2d-wasm/PhysicsSystem.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAc,MAAM,EAAE,MAAM,YAAY,CAAA;AAE5E,OAAO,EAAoC,IAAI,EAAE,MAAM,IAAI,CAAA;AAM3D,eAAO,MAAM,WAAW,IAAI,CAAA;AAC5B,eAAO,MAAM,aAAa,IAAI,CAAA;AAC9B,eAAO,MAAM,UAAU,IAAI,CAAA;AAC3B,eAAO,IAAI,KAAK,EAAE,OAAO,KAAK,CAAA;AAC9B,wBAAsB,SAAS,kBAE9B;AASD,wBAAgB,iBAAiB,CAAC,cAAc,cAAW,QAG1D;AAOD,qBAAa,aAAc,YAAW,MAAM;IAC1C,KAAK,EAAE,KAAK,CAAC,OAAO,CAAA;IACpB,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,CAAK;IAEnC,cAAc,cAAW;IACzB,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAA;IAErB,QAAQ;IAKR,SAAS,CAAC,aAAa,EAAE,YAAY;IA4JrC,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM;IA8BhE,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,EAIpB;CACF"}
@@ -9,11 +9,8 @@ export const DynamicBody = 2;
9
9
  export const KinematicBody = 1;
10
10
  export const StaticBody = 0;
11
11
  export let box2D;
12
- export function initBox2d(cb) {
13
- Box2DFactory().then((b2) => {
14
- box2D = b2;
15
- cb();
16
- });
12
+ export async function initBox2d() {
13
+ box2D = await Box2DFactory();
17
14
  }
18
15
  // Box2D.b2Fixture.prototype.shouldCollide = function (other) {
19
16
  // const nodeThis: NodeComp = this.getBody().getUserData()
@@ -26,14 +23,14 @@ export function setColliderMatrix(colliderMatrix = [[true]]) {
26
23
  physicsSystem.colliderMatrix = colliderMatrix;
27
24
  }
28
25
  const maxTimeStep = 1 / 60;
29
- const velocityIterations = 1;
30
- const positionIterations = 1;
26
+ const velocityIterations = 8;
27
+ const positionIterations = 3;
31
28
  const metadata = {};
32
29
  const pixelsPerMeter = 1;
33
30
  export class PhysicsSystem {
34
31
  world;
35
32
  listRemoveBody = [];
36
- listRemoveShape = [];
33
+ // listRemoveShape: Box2D.b2Shape[] = []
37
34
  colliderMatrix = [[true]];
38
35
  graphics;
39
36
  addDebug() {
@@ -44,34 +41,32 @@ export class PhysicsSystem {
44
41
  const { b2BodyDef, b2FixtureDef, b2PolygonShape, b2CircleShape, b2Vec2, b2World, pointsToVec2Array, getPointer } = box2D;
45
42
  const gravity = new b2Vec2(0, -10);
46
43
  this.world = new b2World(gravity);
47
- console.log('configure PhysicsSystem world', this.world);
44
+ // console.log('configure PhysicsSystem world', this.world)
48
45
  const graphics = new cc.DrawNode();
49
46
  this.graphics = graphics;
50
47
  graphics.zIndex = 1000;
51
48
  const scene = cc.director.getRunningScene();
52
49
  scene.addChild(graphics);
53
- event_manager.subscribe(EventTypes.ComponentAdded, PhysicsBoxCollider, ({ entity, component }) => {
50
+ event_manager.subscribe(EventTypes.ComponentAdded, PhysicsBoxCollider, ({ entity, component: box }) => {
54
51
  // console.log('ComponentAddedEvent PhysicsBoxCollider', component)
55
52
  let rigidBody = entity.getComponent(RigidBody);
56
- const box = component;
57
- const { width, height, offset = [] } = box.props;
58
- const node = entity.getComponent(NodeComp);
59
- const zero = new b2Vec2(0, 0);
60
53
  if (!rigidBody) {
61
54
  rigidBody = instantiate(RigidBody);
62
55
  entity.assign(rigidBody);
63
- const { type = StaticBody, gravityScale = 1 } = rigidBody.props;
64
- const bd = new b2BodyDef();
65
- bd.set_type(type);
66
- bd.set_position(zero);
67
- bd.set_gravityScale(gravityScale);
68
- const body = this.world.CreateBody(bd);
69
- rigidBody.body = body;
70
- const physicsNode = new PhysicsSprite(node.instance, rigidBody.body);
71
- rigidBody.physicSprite = physicsNode;
72
- rigidBody.node = node;
73
56
  }
74
- const { density = 1, friction = 0.5, restitution = 0.3 } = rigidBody.props;
57
+ const { type = StaticBody, gravityScale = 1, density = 1, friction = 0.5, restitution = 0.3, isSensor } = rigidBody.props;
58
+ const { width, height, offset = [] } = box.props;
59
+ const node = entity.getComponent(NodeComp);
60
+ const zero = new b2Vec2(0, 0);
61
+ const bd = new b2BodyDef();
62
+ bd.set_type(type);
63
+ bd.set_position(zero);
64
+ bd.set_gravityScale(gravityScale);
65
+ const body = this.world.CreateBody(bd);
66
+ rigidBody.body = body;
67
+ const physicsNode = new PhysicsSprite(node.instance, rigidBody.body);
68
+ rigidBody.physicSprite = physicsNode;
69
+ rigidBody.node = node;
75
70
  // console.log('body', type, b2_dynamicBody, b2_staticBody, getPointer(body));
76
71
  // body.setMassData({ mass: 1 } as any)
77
72
  const position = new b2Vec2(node.posX, node.posY);
@@ -83,6 +78,7 @@ export class PhysicsSystem {
83
78
  fixtureDef.set_density(density);
84
79
  fixtureDef.set_friction(friction);
85
80
  fixtureDef.set_restitution(restitution);
81
+ fixtureDef.set_isSensor(isSensor);
86
82
  rigidBody.body.CreateFixture(fixtureDef);
87
83
  rigidBody.body.SetTransform(position, 0);
88
84
  rigidBody.body.SetLinearVelocity(zero);
@@ -98,7 +94,7 @@ export class PhysicsSystem {
98
94
  rigidBody = instantiate(RigidBody);
99
95
  entity.assign(rigidBody);
100
96
  }
101
- const { type = StaticBody, gravityScale = 1, density = 1, friction = 0.5, restitution = 0.3 } = rigidBody.props;
97
+ const { type = StaticBody, gravityScale = 1, density = 100, friction = 0.5, restitution = 0.3, isSensor = false } = rigidBody.props;
102
98
  const node = entity.getComponent(NodeComp);
103
99
  const { radius, offset = [] } = component.props;
104
100
  const [x = 0, y = 0] = offset;
@@ -119,6 +115,7 @@ export class PhysicsSystem {
119
115
  const fixtureDef = new b2FixtureDef();
120
116
  fixtureDef.set_shape(circleShape);
121
117
  fixtureDef.set_density(density);
118
+ fixtureDef.set_isSensor(isSensor);
122
119
  fixtureDef.set_friction(friction);
123
120
  fixtureDef.set_restitution(restitution);
124
121
  body.CreateFixture(fixtureDef);
@@ -138,7 +135,7 @@ export class PhysicsSystem {
138
135
  rigidBody = instantiate(RigidBody);
139
136
  entity.assign(rigidBody);
140
137
  }
141
- const { type = StaticBody, gravityScale = 1, density = 1, friction = 0.5, restitution = 0.3 } = rigidBody.props;
138
+ const { type = StaticBody, gravityScale = 1, density = 1, friction = 0.5, restitution = 0.3, isSensor } = rigidBody.props;
142
139
  const node = entity.getComponent(NodeComp);
143
140
  const { points, offset = [] } = component.props;
144
141
  const [x = 0, y = 0] = offset;
@@ -170,9 +167,10 @@ export class PhysicsSystem {
170
167
  fixtureDef.set_density(density);
171
168
  fixtureDef.set_friction(friction);
172
169
  fixtureDef.set_restitution(restitution);
170
+ fixtureDef.set_isSensor(isSensor);
173
171
  body.CreateFixture(fixtureDef);
174
172
  body.SetTransform(position, 0);
175
- body.SetLinearVelocity(zero);
173
+ // body.SetLinearVelocity(zero)
176
174
  body.SetAwake(true);
177
175
  body.SetEnabled(true);
178
176
  metadata[getPointer(body)] = node;
@@ -194,6 +192,12 @@ export class PhysicsSystem {
194
192
  update(entities, events, dt) {
195
193
  if (this.world) {
196
194
  const { getPointer } = box2D;
195
+ for (const entt of entities.entities_with_components(RigidBody)) {
196
+ const comp = entt.getComponent(RigidBody);
197
+ if (comp.node.active && comp.enabled) {
198
+ comp.physicSprite.update(dt);
199
+ }
200
+ }
197
201
  // remove bodies and shapes
198
202
  this.listRemoveBody.forEach((body) => {
199
203
  if (body) {
@@ -206,7 +210,7 @@ export class PhysicsSystem {
206
210
  // }
207
211
  // })
208
212
  this.listRemoveBody = [];
209
- this.listRemoveShape = [];
213
+ // this.listRemoveShape = []
210
214
  const clampedDelta = Math.min(dt, maxTimeStep);
211
215
  this.world.Step(clampedDelta, velocityIterations, positionIterations);
212
216
  this.graphics.clear();
@@ -1,4 +1,4 @@
1
- import { EnhancedComponent } from './EnhancedComponent';
1
+ import { EnhancedComponent } from '../gworld/components/EnhancedComponent';
2
2
  export declare namespace AnimationClip {
3
3
  interface IEvent {
4
4
  frame: number;
@@ -61,5 +61,5 @@ export declare class AnimationComp extends EnhancedComponent {
61
61
  resume(): void;
62
62
  stop(name?: string): void;
63
63
  }
64
- export {};
64
+ export { };
65
65
  //# sourceMappingURL=AnimationComponent.d.ts.map
@@ -1,5 +1,5 @@
1
- import { NoRenderComponentX } from '../gworld/core/decorator';
2
- import { Vec2 } from '../polyfills';
1
+ import { Vec2 } from '../../polyfills';
2
+ import { NoRenderComponentX } from '../core/decorator';
3
3
  interface ColliderProps {
4
4
  offset?: Vec2;
5
5
  tag?: number;
@@ -60,5 +60,5 @@ export declare class Contract {
60
60
  updateState(): CollisionType;
61
61
  test(): any;
62
62
  }
63
- export { };
63
+ export {};
64
64
  //# sourceMappingURL=CollideComponent.d.ts.map
@@ -1,6 +1,5 @@
1
1
  import { EntityManager, EventManager, System } from 'entityx-ts';
2
- import { Collider, Contract } from '../../collider/CollideComponent';
3
- export declare function shouldCollider(colA: Collider, colB: Collider): any;
2
+ import { Collider, Contract } from '../components/CollideComponent';
4
3
  export declare class CollideSystem implements System {
5
4
  listColliders: Collider[];
6
5
  _contracts: Contract[];
@@ -1 +1 @@
1
- {"version":3,"file":"CollideSystem.d.ts","sourceRoot":"","sources":["../../../src/gworld/systems/CollideSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAc,MAAM,EAAE,MAAM,YAAY,CAAA;AAG5E,OAAO,EAA+B,QAAQ,EAAiB,QAAQ,EAAmB,MAAM,gCAAgC,CAAA;AAGhI,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"}
1
+ {"version":3,"file":"CollideSystem.d.ts","sourceRoot":"","sources":["../../../src/gworld/systems/CollideSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAc,MAAM,EAAE,MAAM,YAAY,CAAA;AAG5E,OAAO,EAA+B,QAAQ,EAAiB,QAAQ,EAAmB,MAAM,gCAAgC,CAAA;AAGhI,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"}
@@ -1,20 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CollideSystem = void 0;
4
- exports.shouldCollider = shouldCollider;
5
4
  var entityx_ts_1 = require("entityx-ts");
6
- var __1 = require("..");
5
+ var utils_1 = require("../../helper/utils");
7
6
  var CollideComponent_1 = require("../components/CollideComponent");
8
7
  var NodeComp_1 = require("../components/NodeComp");
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 = __1.GameWorld.Instance.systems.get(CollideSystem).colliderMatrix;
16
- return colliderMatrix[groupA][groupB];
17
- }
18
8
  var CollideSystem = /** @class */ (function () {
19
9
  function CollideSystem() {
20
10
  var _this = this;
@@ -157,7 +147,7 @@ var CollideSystem = /** @class */ (function () {
157
147
  CollideSystem.prototype.addCollider = function (collider) {
158
148
  var _this = this;
159
149
  this.listColliders.forEach(function (col) {
160
- if (shouldCollider(col, collider)) {
150
+ if ((0, utils_1.shouldCollider)(col, collider)) {
161
151
  _this._contracts.push(new CollideComponent_1.Contract(col, collider));
162
152
  }
163
153
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@safe-engine/cocos",
3
- "version": "1.6.5",
3
+ "version": "1.7.1",
4
4
  "description": "safe-engine with cocos renderer support",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,77 +0,0 @@
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
@@ -1 +0,0 @@
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"}