react-simple-game-engine 0.3.10 → 0.3.12
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/lib/classes/entities/entity.d.ts +2 -2
- package/lib/classes/entities/entity.d.ts.map +1 -1
- package/lib/classes/entities/entity.js +8 -4
- package/lib/classes/sensor.d.ts +4 -2
- package/lib/classes/sensor.d.ts.map +1 -1
- package/lib/classes/sensor.js +9 -2
- package/lib/classes/world-management.d.ts.map +1 -1
- package/lib/classes/world-management.js +12 -10
- package/package.json +1 -1
@@ -19,7 +19,7 @@ declare type TimerOptions = {
|
|
19
19
|
};
|
20
20
|
declare type AddSensorParams = {
|
21
21
|
name?: string;
|
22
|
-
|
22
|
+
relativePosition?: Point;
|
23
23
|
} & ({
|
24
24
|
shape?: "rect";
|
25
25
|
width: number;
|
@@ -85,7 +85,7 @@ export declare abstract class Entity<P extends Record<string, any> = Record<stri
|
|
85
85
|
* @param {boolean} debugColor allow to change sensor color
|
86
86
|
* @void
|
87
87
|
*/
|
88
|
-
addSensor({
|
88
|
+
addSensor({ relativePosition, name, shape, width, height, radius, }: AddSensorParams, debug?: boolean, debugColor?: Color): void;
|
89
89
|
createBody(enabledPhysicBody: boolean, transform: CreateBodyDefine["transform"], options?: CreateBodyDefine["bodyOptions"]): MasterBody | {
|
90
90
|
position: Point;
|
91
91
|
entity: Entity<Record<string, any>>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/classes/entities/entity.ts"],"names":[],"mappings":"AAAA,OAAO,MAAwB,MAAM,WAAW,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EACL,KAAK,EACL,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,UAAU,EACV,KAAK,EAEN,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,aAAK,gBAAgB,GAAG,MAAM,IAAI,CAAC;AAEnC,aAAK,gBAAgB,GAAG;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IACjD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,aAAK,YAAY,GAAG;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC,CAAC;AAEF,aAAK,eAAe,GAAG;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,
|
1
|
+
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/classes/entities/entity.ts"],"names":[],"mappings":"AAAA,OAAO,MAAwB,MAAM,WAAW,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EACL,KAAK,EACL,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,UAAU,EACV,KAAK,EAEN,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,aAAK,gBAAgB,GAAG,MAAM,IAAI,CAAC;AAEnC,aAAK,gBAAgB,GAAG;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IACjD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,aAAK,YAAY,GAAG;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC,CAAC;AAEF,aAAK,eAAe,GAAG;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,KAAK,CAAC;CAC1B,GAAG,CACA;IACE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB,GACD;IACE,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB,CACJ,CAAC;AACF,8BAAsB,MAAM,CAC1B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACnD,SAAQ,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO,CAAC,KAAK,CAAmD;IAChE,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,iBAAiB,CAKhB;IACT,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAS;IAErB,WAAW,EAAE,OAAO,CAAS;IACpC,SAAgB,OAAO,EAAE,MAAM,EAAE,CAAM;IAChC,cAAc,EAAE,OAAO,CAAQ;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEhC,QAAQ,KAAK,IAAI,IAAI;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,IAAI,WAAW,YAEd;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAG7B;IAED,IAAI,MAAM,IALS,MAAM,CAAC,GAAG,CAAC,CAO7B;IAED,IAAI,QAAQ,kBAEX;IAED,IAAI,IAAI,eAEP;IAED,IAAI,KAAK,MAER;IAED,IAAI,cAAc,YAGjB;IAED;;;;;OAKG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,gBAAgB;IAyBpC;;;;;OAKG;IACH,OAAO,CACL,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,gBAAgB,EACrB,EACE,UAAkB,EAClB,IAAY,EACZ,SAAS,EACT,cAAc,GACf,GAAE,YAAiB,GACnB;QACD,MAAM,EAAE,MAAM,IAAI,CAAC;QACnB,KAAK,EAAE,MAAM,IAAI,CAAC;KACnB;IAkCD,YAAY,CAAC,MAAM,EAAE,MAAM;IAQ3B;;;;;;;;;;OAUG;IACH,SAAS,CACP,EACE,gBAAgB,EAChB,IAAI,EACJ,KAAc,EACd,KAAK,EACL,MAAM,EACN,MAAM,GACP,EAAE,eAAe,EAClB,KAAK,GAAE,OAAe,EACtB,UAAU,CAAC,EAAE,KAAK;IA0CpB,UAAU,CACR,iBAAiB,EAAE,OAAO,EAC1B,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,EACxC,OAAO,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC;;;;IAW3C,SAAS,CAAC,QAAQ,CAAC,YAAY,CAC7B,iBAAiB,EAAE,OAAO,EAC1B,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,EACxC,OAAO,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,GACxC,MAAM,CAAC,IAAI,GAAG;QAAE,QAAQ,EAAE,KAAK,CAAA;KAAE;IAEpC,OAAO,CAAC,EACN,SAAS,EACT,MAAM,EAAE,eAAe,EACvB,WAAW,EACX,KAAU,EACV,GAAG,MAAM,EACV,EAAE,aAAa,CAAC,IAAI,CAAC;IAmDtB,SAAS,CAAC,QAAQ,CAAC,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC;IAEnD;;;OAGG;IACH,SAAS,CAAC,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC;IAI1C,MAAM;IAgBN;;;OAGG;IACH,QAAQ;IAER,IAAI;IAYJ;;;OAGG;IACH,MAAM;IAEN,QAAQ,CAAC,oBAAoB,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAElE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IACnC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IACtC,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAEzC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IACzD,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAC5D,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;CAChE"}
|
@@ -190,18 +190,22 @@ var Entity = /** @class */ (function (_super) {
|
|
190
190
|
* @void
|
191
191
|
*/
|
192
192
|
Entity.prototype.addSensor = function (_a, debug, debugColor) {
|
193
|
-
var
|
193
|
+
var relativePosition = _a.relativePosition, name = _a.name, _b = _a.shape, shape = _b === void 0 ? "rect" : _b, width = _a.width, height = _a.height, radius = _a.radius;
|
194
194
|
if (debug === void 0) { debug = false; }
|
195
195
|
name = name || genId();
|
196
|
-
|
196
|
+
relativePosition = relativePosition || { x: 0, y: 0 };
|
197
|
+
var pos = {
|
198
|
+
x: this.position.x + relativePosition.x,
|
199
|
+
y: this.position.y + relativePosition.y,
|
200
|
+
};
|
197
201
|
var sensor;
|
198
202
|
if (shape === "rect") {
|
199
|
-
sensor = new Sensor(this, name,
|
203
|
+
sensor = new Sensor(this, name, relativePosition, { width: width, height: height }, shape, Bodies.rectangle(pos.x, pos.y, width, height, {
|
200
204
|
isSensor: true,
|
201
205
|
}), debug, debugColor);
|
202
206
|
}
|
203
207
|
else {
|
204
|
-
sensor = new Sensor(this, name,
|
208
|
+
sensor = new Sensor(this, name, relativePosition, { width: radius * 2, height: radius * 2 }, shape, Bodies.circle(pos.x, pos.y, radius, {
|
205
209
|
isSensor: true,
|
206
210
|
}), debug, debugColor);
|
207
211
|
}
|
package/lib/classes/sensor.d.ts
CHANGED
@@ -1,14 +1,16 @@
|
|
1
|
+
/// <reference types="matter-js" />
|
1
2
|
import { Color, Point, SensorBody, Size } from "../export-types";
|
2
3
|
import { Entity } from "./entities/entity";
|
3
4
|
export declare class Sensor {
|
4
5
|
readonly entity: Entity;
|
5
6
|
readonly name: string;
|
6
|
-
readonly
|
7
|
+
readonly relativePosition: Point;
|
7
8
|
readonly size: Size;
|
8
9
|
readonly shape: "rect" | "circle";
|
9
10
|
readonly body: SensorBody;
|
10
11
|
readonly debug: boolean;
|
11
12
|
readonly debugColor: Color;
|
12
|
-
constructor(entity: Entity, name: string,
|
13
|
+
constructor(entity: Entity, name: string, relativePosition: Point, size: Size, shape: "rect" | "circle", body: SensorBody, debug?: boolean, debugColor?: Color);
|
14
|
+
get position(): import("matter-js").Vector;
|
13
15
|
}
|
14
16
|
//# sourceMappingURL=sensor.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sensor.d.ts","sourceRoot":"","sources":["../../src/classes/sensor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,qBAAa,MAAM;aAEC,MAAM,EAAE,MAAM;aACd,IAAI,EAAE,MAAM;aACZ,
|
1
|
+
{"version":3,"file":"sensor.d.ts","sourceRoot":"","sources":["../../src/classes/sensor.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,qBAAa,MAAM;aAEC,MAAM,EAAE,MAAM;aACd,IAAI,EAAE,MAAM;aACZ,gBAAgB,EAAE,KAAK;aACvB,IAAI,EAAE,IAAI;aACV,KAAK,EAAE,MAAM,GAAG,QAAQ;aACxB,IAAI,EAAE,UAAU;aAChB,KAAK,EAAE,OAAO;aACd,UAAU,EAAE,KAAK;gBAPjB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,KAAK,EACvB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,GAAG,QAAQ,EACxB,IAAI,EAAE,UAAU,EAChB,KAAK,GAAE,OAAe,EACtB,UAAU,GAAE,KAA4B;IAM1D,IAAI,QAAQ,+BAEX;CACF"}
|
package/lib/classes/sensor.js
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
var Sensor = /** @class */ (function () {
|
2
|
-
function Sensor(entity, name,
|
2
|
+
function Sensor(entity, name, relativePosition, size, shape, body, debug, debugColor) {
|
3
3
|
if (debug === void 0) { debug = false; }
|
4
4
|
if (debugColor === void 0) { debugColor = [212, 200, 200, 100]; }
|
5
5
|
this.entity = entity;
|
6
6
|
this.name = name;
|
7
|
-
this.
|
7
|
+
this.relativePosition = relativePosition;
|
8
8
|
this.size = size;
|
9
9
|
this.shape = shape;
|
10
10
|
this.body = body;
|
@@ -13,6 +13,13 @@ var Sensor = /** @class */ (function () {
|
|
13
13
|
this.body.sensor = this;
|
14
14
|
this.body.entity = this.entity;
|
15
15
|
}
|
16
|
+
Object.defineProperty(Sensor.prototype, "position", {
|
17
|
+
get: function () {
|
18
|
+
return this.body.position;
|
19
|
+
},
|
20
|
+
enumerable: false,
|
21
|
+
configurable: true
|
22
|
+
});
|
16
23
|
return Sensor;
|
17
24
|
}());
|
18
25
|
export { Sensor };
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"world-management.d.ts","sourceRoot":"","sources":["../../src/classes/world-management.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,IAAI,EAAE,MAAM,WAAW,CAAC;AAIxD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
1
|
+
{"version":3,"file":"world-management.d.ts","sourceRoot":"","sources":["../../src/classes/world-management.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,IAAI,EAAE,MAAM,WAAW,CAAC;AAIxD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,qBAAa,eAAe;IAWd,OAAO,CAAC,OAAO;IAAgB,OAAO,CAAC,MAAM;IAVzD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAGtB;IACP,OAAO,CAAC,QAAQ,CAAC,YAAY,CACxB;IAEL,OAAO,CAAC,OAAO,CAAS;gBAEJ,OAAO,EAAE,YAAY,EAAU,MAAM,EAAE,KAAK;IAqDhE,OAAO,CAAC,mBAAmB;IAiB3B,IAAI,MAAM,WAET;IAED,IAAI,MAAM,iBAET;IAED,IAAI,KAAK,eAER;IAED,eAAe,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,GAAG,SAAS,GAAG,IAAI;IAqB1E,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,OAAO;IAWf,UAAU;IAKV,sBAAsB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM;IAK3D,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM;IAKpD,kBAAkB;IAMlB,SAAS,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EACzC,IAAI,EAAE,MAAM,GAAG;QAAE,QAAQ,CAAC,CAAA;KAAE,GAC3B,CAAC;IAgBJ,OAAO,CAAC,IAAI,EAAE,IAAI;IAIlB,UAAU,CAAC,IAAI,EAAE,IAAI;IAIrB,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC;IAczD,YAAY,CAAC,MAAM,EAAE,UAAU;IAoB/B,MAAM;IAiBN,IAAI;CAqBL"}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { Engine, World, Events, Body } from "matter-js";
|
2
2
|
import { Entity } from "./entities/entity";
|
3
3
|
import { EntitySuit } from "./entities/entity-suit";
|
4
|
+
import { Sensor } from "./sensor";
|
4
5
|
var WorldManagement = /** @class */ (function () {
|
5
6
|
function WorldManagement(_camera, _scene) {
|
6
7
|
var _this = this;
|
@@ -12,13 +13,14 @@ var WorldManagement = /** @class */ (function () {
|
|
12
13
|
this._engine = Engine.create();
|
13
14
|
Events.on(this.engine, "beforeUpdate", function () {
|
14
15
|
var gravity = _this.engine.gravity;
|
15
|
-
_this.iterateEntities(function (
|
16
|
-
if (
|
17
|
-
|
18
|
-
!
|
19
|
-
|
20
|
-
|
21
|
-
|
16
|
+
_this.iterateEntities(function (target) {
|
17
|
+
if ((target instanceof Entity &&
|
18
|
+
target.havePhysicBody &&
|
19
|
+
!target.enabledGravity) ||
|
20
|
+
target instanceof Sensor) {
|
21
|
+
Body.applyForce(target.body, target.position, {
|
22
|
+
x: -gravity.x * gravity.scale * target.body.mass,
|
23
|
+
y: -gravity.y * gravity.scale * target.body.mass,
|
22
24
|
});
|
23
25
|
}
|
24
26
|
});
|
@@ -198,10 +200,10 @@ var WorldManagement = /** @class */ (function () {
|
|
198
200
|
if (entity instanceof Entity) {
|
199
201
|
var _a = entity.position, entityX = _a.x, entityY = _a.y;
|
200
202
|
for (var _i = 0, _b = entity.sensors; _i < _b.length; _i++) {
|
201
|
-
var _c = _b[_i], body = _c.body,
|
203
|
+
var _c = _b[_i], body = _c.body, relativePosition = _c.relativePosition;
|
202
204
|
Body.setPosition(body, {
|
203
|
-
x: entityX +
|
204
|
-
y: entityY +
|
205
|
+
x: entityX + relativePosition.x,
|
206
|
+
y: entityY + relativePosition.y,
|
205
207
|
});
|
206
208
|
}
|
207
209
|
}
|