react-simple-game-engine 0.0.39 → 0.0.42

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,10 +1,14 @@
1
1
  import p5 from "p5";
2
2
  import { Camera } from "./camera";
3
3
  import { EntitySult } from "./entities/entity-sult";
4
- import { ParticleInitialParams } from "./particle";
4
+ import { Particle, ParticleInitialParams } from "./particle";
5
+ declare type ParticleClass = {
6
+ new (...args: ConstructorParameters<typeof Particle>): Particle;
7
+ };
5
8
  declare type ParticleOptions = Omit<ParticleInitialParams, "vec" | "angle" | "camera"> & {
6
9
  x?: number;
7
10
  y?: number;
11
+ particleClass?: ParticleClass;
8
12
  };
9
13
  declare type ParticleSystemInitialParams = ParticleOptions & {
10
14
  quantityPerFrame?: number;
@@ -15,6 +19,7 @@ export declare class ParticleSystem extends EntitySult<ParticleSystemInitialPara
15
19
  private particles;
16
20
  private forces;
17
21
  private particleOptions;
22
+ private particleClass;
18
23
  quantityPerFrame: number;
19
24
  vecWeight: number;
20
25
  camera: Camera;
@@ -1 +1 @@
1
- {"version":3,"file":"particle-system.d.ts","sourceRoot":"","sources":["../../src/classes/particle-system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAY,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE7D,aAAK,eAAe,GAAG,IAAI,CACzB,qBAAqB,EACrB,KAAK,GAAG,OAAO,GAAG,QAAQ,CAC3B,GAAG;IACF,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,aAAK,2BAA2B,GAAG,eAAe,GAAG;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,qBAAa,cAAe,SAAQ,UAAU,CAAC,2BAA2B,CAAC;IACzE,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,eAAe,CAAmB;IACnC,gBAAgB,EAAE,MAAM,CAAO;IAC/B,SAAS,EAAE,MAAM,CAAM;IACvB,MAAM,EAAG,MAAM,CAAC;IAEvB,MAAM;IAIN,OAAO,CAAC,EACN,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,GAAG,MAAM,EACV,EAAE,2BAA2B;IAiB9B,MAAM;IAwBN,IAAI;CAKL"}
1
+ {"version":3,"file":"particle-system.d.ts","sourceRoot":"","sources":["../../src/classes/particle-system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE7D,aAAK,aAAa,GAAG;IACnB,KAAK,GAAG,IAAI,EAAE,qBAAqB,CAAC,OAAO,QAAQ,CAAC,GAAG,QAAQ,CAAC;CACjE,CAAC;AAEF,aAAK,eAAe,GAAG,IAAI,CACzB,qBAAqB,EACrB,KAAK,GAAG,OAAO,GAAG,QAAQ,CAC3B,GAAG;IACF,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC;AAEF,aAAK,2BAA2B,GAAG,eAAe,GAAG;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,qBAAa,cAAe,SAAQ,UAAU,CAAC,2BAA2B,CAAC;IACzE,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,eAAe,CAGrB;IACF,OAAO,CAAC,aAAa,CAA2B;IAEzC,gBAAgB,EAAE,MAAM,CAAM;IAC9B,SAAS,EAAE,MAAM,CAAK;IACtB,MAAM,EAAG,MAAM,CAAC;IAEvB,MAAM;IAIN,OAAO,CAAC,EACN,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,GAAG,MAAM,EACV,EAAE,2BAA2B;IAe9B,MAAM;IAyBN,IAAI;CAKL"}
@@ -45,8 +45,13 @@ var ParticleSystem = /** @class */ (function (_super) {
45
45
  var _this = _super !== null && _super.apply(this, arguments) || this;
46
46
  _this.particles = [];
47
47
  _this.forces = [];
48
- _this.quantityPerFrame = 100;
49
- _this.vecWeight = 10;
48
+ _this.particleOptions = {
49
+ x: 0,
50
+ y: 0,
51
+ };
52
+ _this.particleClass = Particle;
53
+ _this.quantityPerFrame = 50;
54
+ _this.vecWeight = 5;
50
55
  return _this;
51
56
  }
52
57
  ParticleSystem.prototype.active = function () {
@@ -55,8 +60,6 @@ var ParticleSystem = /** @class */ (function (_super) {
55
60
  ParticleSystem.prototype.initial = function (_a) {
56
61
  var _b;
57
62
  var quantityPerFrame = _a.quantityPerFrame, forces = _a.forces, vecWeight = _a.vecWeight, params = __rest(_a, ["quantityPerFrame", "forces", "vecWeight"]);
58
- params.x = params.x || 0;
59
- params.y = params.y || 0;
60
63
  copyProperties(this.particleOptions, params);
61
64
  if (quantityPerFrame != null) {
62
65
  this.quantityPerFrame = quantityPerFrame;
@@ -69,10 +72,11 @@ var ParticleSystem = /** @class */ (function (_super) {
69
72
  }
70
73
  };
71
74
  ParticleSystem.prototype.update = function () {
75
+ var ParticleClass = this.particleClass;
72
76
  var _a = this.particleOptions, x = _a.x, y = _a.y, particleOptions = __rest(_a, ["x", "y"]);
73
77
  for (var _i = 0, _b = Array.from({ length: this.quantityPerFrame }); _i < _b.length; _i++) {
74
78
  var _ = _b[_i];
75
- var p = new Particle(x, y);
79
+ var p = new ParticleClass(x, y);
76
80
  var vec = p5.Vector.random2D();
77
81
  vec.mult(Renderer.random(this.vecWeight));
78
82
  var angle = Renderer.random(Renderer.TWO_PI);
@@ -10,6 +10,7 @@ export declare type ParticleInitialParams = {
10
10
  size?: number;
11
11
  lifetime?: number;
12
12
  camera: Camera;
13
+ forceSpriteSize?: boolean;
13
14
  };
14
15
  export declare class Particle extends p5.Vector implements Initialler<ParticleInitialParams> {
15
16
  private vec;
@@ -19,8 +20,9 @@ export declare class Particle extends p5.Vector implements Initialler<ParticleIn
19
20
  sprite?: Avatar;
20
21
  color: Color;
21
22
  size: number;
22
- private _lifetime;
23
23
  lifetimeRemain: number;
24
+ private forceSpriteSize;
25
+ private _lifetime;
24
26
  set lifetime(lifetime: number);
25
27
  get lifetime(): number;
26
28
  initial({ vec, ...params }: ParticleInitialParams): void;
@@ -28,6 +30,6 @@ export declare class Particle extends p5.Vector implements Initialler<ParticleIn
28
30
  isDead(): boolean;
29
31
  update(): void;
30
32
  draw(): void;
31
- onDraw(): void;
33
+ onDraw(color: Color): void;
32
34
  }
33
35
  //# sourceMappingURL=particle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"particle.d.ts","sourceRoot":"","sources":["../../src/classes/particle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,oBAAY,qBAAqB,GAAG;IAClC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,qBAAa,QACX,SAAQ,EAAE,CAAC,MACX,YAAW,UAAU,CAAC,qBAAqB,CAAC;IAE5C,OAAO,CAAC,GAAG,CAAsC;IACjD,OAAO,CAAC,GAAG,CAAsC;IACjD,OAAO,CAAC,KAAK,CAAa;IACnB,MAAM,EAAG,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAmB;IAC/B,IAAI,EAAE,MAAM,CAAM;IACzB,OAAO,CAAC,SAAS,CAAa;IACvB,cAAc,EAAE,MAAM,CAAiB;IAE9C,IAAI,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAG5B;IAED,IAAI,QAAQ,IALW,MAAM,CAO5B;IAED,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,EAAE,qBAAqB;IAOjD,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM;IAI3B,MAAM;IAIN,MAAM;IAQN,IAAI;IA8BJ,MAAM;CAQP"}
1
+ {"version":3,"file":"particle.d.ts","sourceRoot":"","sources":["../../src/classes/particle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,oBAAY,qBAAqB,GAAG;IAClC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,qBAAa,QACX,SAAQ,EAAE,CAAC,MACX,YAAW,UAAU,CAAC,qBAAqB,CAAC;IAE5C,OAAO,CAAC,GAAG,CAAsC;IACjD,OAAO,CAAC,GAAG,CAAsC;IACjD,OAAO,CAAC,KAAK,CAAa;IACnB,MAAM,EAAG,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAmB;IAC/B,IAAI,EAAE,MAAM,CAAK;IACjB,cAAc,EAAE,MAAM,CAAiB;IAE9C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,SAAS,CAAa;IAE9B,IAAI,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAG5B;IAED,IAAI,QAAQ,IALW,MAAM,CAO5B;IAED,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,EAAE,qBAAqB;IAOjD,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM;IAI3B,MAAM;IAIN,MAAM;IAQN,IAAI;IAkCJ,MAAM,CAAC,KAAK,EAAE,KAAK;CAIpB"}
@@ -43,9 +43,10 @@ var Particle = /** @class */ (function (_super) {
43
43
  _this.acc = Renderer.createVector(); //acceleration
44
44
  _this.angle = 0;
45
45
  _this.color = [255, 255, 255];
46
- _this.size = 10;
47
- _this._lifetime = 2; // in seconds
46
+ _this.size = 5;
48
47
  _this.lifetimeRemain = _this.lifetime; // in seconds
48
+ _this.forceSpriteSize = false;
49
+ _this._lifetime = 2; // in seconds
49
50
  return _this;
50
51
  }
51
52
  Object.defineProperty(Particle.prototype, "lifetime", {
@@ -83,27 +84,31 @@ var Particle = /** @class */ (function (_super) {
83
84
  Renderer.noStroke();
84
85
  Renderer.translate(this.x - this.camera.x, this.y - this.camera.y);
85
86
  Renderer.rotate(this.angle);
87
+ var color = __spreadArray([], this.color, true);
88
+ var alpha = Renderer.map(this.lifetimeRemain, 0, this.lifetime, 0, 255);
89
+ color[3] = alpha;
86
90
  if (this.sprite) {
87
- var color = __spreadArray([], this.color, true);
88
- var alpha = Renderer.map(this.lifetimeRemain, 0, this.lifetime, 0, 255);
89
- color[3] = alpha;
91
+ var size = this.forceSpriteSize
92
+ ? [this.size, this.size]
93
+ : [this.sprite.width, this.sprite.height];
90
94
  Renderer.tint.apply(Renderer, color);
91
- Renderer.image(this.sprite,
92
- // position on canvas
93
- 0, 0, this.sprite.width, this.sprite.height,
94
- //crop on source image
95
- 0, 0, this.sprite.width, this.sprite.height);
95
+ Renderer.image.apply(Renderer, __spreadArray(__spreadArray([this.sprite,
96
+ // position on canvas
97
+ 0,
98
+ 0], size, false), [
99
+ //crop on source image
100
+ 0,
101
+ 0,
102
+ this.sprite.width,
103
+ this.sprite.height], false));
96
104
  }
97
105
  else {
98
- this.onDraw();
106
+ this.onDraw(color);
99
107
  }
100
108
  //
101
109
  Renderer.pop();
102
110
  };
103
- Particle.prototype.onDraw = function () {
104
- var color = __spreadArray([], this.color, true);
105
- var alpha = Renderer.map(this.lifetimeRemain, 0, this.lifetime, 0, 255);
106
- color[3] = alpha;
111
+ Particle.prototype.onDraw = function (color) {
107
112
  Renderer.fill.apply(Renderer, color);
108
113
  Renderer.circle(0, 0, this.size);
109
114
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-simple-game-engine",
3
- "version": "0.0.39",
3
+ "version": "0.0.42",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib",