@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.
- package/dist/app.d.ts +2 -2
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +36 -26
- package/dist/box2d-wasm/PhysicsComponent.d.ts +2 -0
- package/dist/box2d-wasm/PhysicsComponent.d.ts.map +1 -1
- package/dist/box2d-wasm/PhysicsComponent.js +16 -3
- package/dist/box2d-wasm/PhysicsSprite.d.ts +1 -0
- package/dist/box2d-wasm/PhysicsSprite.d.ts.map +1 -1
- package/dist/box2d-wasm/PhysicsSprite.js +3 -4
- package/dist/box2d-wasm/PhysicsSystem.d.ts +1 -2
- package/dist/box2d-wasm/PhysicsSystem.d.ts.map +1 -1
- package/dist/box2d-wasm/PhysicsSystem.js +33 -29
- package/dist/gworld/components/AnimationComponent.d.ts +2 -2
- package/dist/gworld/components/CollideComponent.d.ts +3 -3
- package/dist/gworld/systems/CollideSystem.d.ts +1 -2
- package/dist/gworld/systems/CollideSystem.d.ts.map +1 -1
- package/dist/gworld/systems/CollideSystem.js +2 -12
- package/package.json +1 -1
- package/dist/dragonbones/cocos/CocosArmatureDisplay.d.ts +0 -77
- package/dist/dragonbones/cocos/CocosArmatureDisplay.d.ts.map +0 -1
- package/dist/dragonbones/cocos/CocosArmatureDisplay.js +0 -227
- package/dist/dragonbones/cocos/CocosFactory.d.ts +0 -128
- package/dist/dragonbones/cocos/CocosFactory.d.ts.map +0 -1
- package/dist/dragonbones/cocos/CocosFactory.js +0 -231
- package/dist/dragonbones/cocos/CocosSlot.d.ts +0 -49
- package/dist/dragonbones/cocos/CocosSlot.d.ts.map +0 -1
- package/dist/dragonbones/cocos/CocosSlot.js +0 -385
- package/dist/dragonbones/cocos/CocosTextureAtlasData.d.ts +0 -53
- package/dist/dragonbones/cocos/CocosTextureAtlasData.d.ts.map +0 -1
- package/dist/dragonbones/cocos/CocosTextureAtlasData.js +0 -158
- package/dist/dragonbones/dragonBones.d.ts +0 -3
- package/dist/dragonbones/dragonBones.d.ts.map +0 -1
- package/dist/dragonbones/dragonBones.js +0 -4788
- package/dist/helper/NodePool.d.ts +0 -9
- package/dist/helper/NodePool.d.ts.map +0 -1
- 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(
|
|
9
|
+
export declare function startGame(defaultFont: string, { width, height }: {
|
|
10
10
|
width: any;
|
|
11
11
|
height: any;
|
|
12
|
-
},
|
|
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,
|
|
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(
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
37
|
+
const body = this.body;
|
|
25
38
|
body.SetLinearVelocity(new box2D.b2Vec2(0, 0));
|
|
26
39
|
body.SetAngularVelocity(0);
|
|
27
40
|
body.SetAwake(true);
|
|
@@ -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;
|
|
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
|
-
|
|
28
|
-
|
|
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(
|
|
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;
|
|
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(
|
|
13
|
-
Box2DFactory()
|
|
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 =
|
|
30
|
-
const positionIterations =
|
|
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 =
|
|
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 '
|
|
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 {
|
|
2
|
-
import {
|
|
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 '
|
|
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,
|
|
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
|
|
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,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"}
|