react-simple-game-engine 0.2.6 → 0.2.7

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.
@@ -11,7 +11,7 @@ import { SoundType } from "../export-enums";
11
11
  declare type SoundOptionsChangeListener<O extends SoundType> = (options: SoundManagement[O]) => void;
12
12
  declare type LoadAssetsListener = (loadedAssets: boolean) => void;
13
13
  declare type EntityPropsChangeListener<V = any> = (value: V) => void;
14
- declare type ProcessStateChangeListener<V = any> = (isForeground: boolean) => void;
14
+ declare type ProcessStateChangeListener = (isForeground: boolean) => void;
15
15
  export declare abstract class Scene<UIP = any> {
16
16
  private ui;
17
17
  private worldManagement;
@@ -1 +1 @@
1
- {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/classes/scene.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/classes/scene.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,6 @@ import { copyProperties, createAssetImage, createAssetSound, parallel, tick, } f
39
39
  import { Sound } from "./sound";
40
40
  import { SoundType } from "../export-enums";
41
41
  var MAX_ASSET_PARALLEL_LOAD = 4;
42
- var MAX_SOUND_PARALLEL_LOAD = 2;
43
42
  var Scene = /** @class */ (function () {
44
43
  function Scene() {
45
44
  this.nativeEventsUnsubscribes = function () { };
@@ -215,26 +214,33 @@ var Scene = /** @class */ (function () {
215
214
  }); }, MAX_ASSET_PARALLEL_LOAD);
216
215
  };
217
216
  Scene.prototype.loadSounds = function () {
218
- var _this_1 = this;
219
- return parallel(this.soundsDecor, function (decor) { return __awaiter(_this_1, void 0, void 0, function () {
220
- var sound;
221
- return __generator(this, function (_a) {
222
- switch (_a.label) {
217
+ return __awaiter(this, void 0, void 0, function () {
218
+ var _i, _a, decor, sound;
219
+ return __generator(this, function (_b) {
220
+ switch (_b.label) {
223
221
  case 0:
224
- if (!decor.src) return [3 /*break*/, 2];
225
- return [4 /*yield*/, createAssetSound(decor.src, decor.type)];
222
+ _i = 0, _a = this.soundsDecor;
223
+ _b.label = 1;
226
224
  case 1:
227
- sound = _a.sent();
225
+ if (!(_i < _a.length)) return [3 /*break*/, 4];
226
+ decor = _a[_i];
227
+ if (!decor.src) return [3 /*break*/, 3];
228
+ return [4 /*yield*/, createAssetSound(decor.src, decor.type)];
229
+ case 2:
230
+ sound = _b.sent();
228
231
  if (decor.volumn) {
229
232
  sound.volumn = decor.volumn;
230
233
  }
231
234
  this[decor.propertyKey] = sound;
232
235
  this.sounds.push(sound);
233
- _a.label = 2;
234
- case 2: return [2 /*return*/];
236
+ _b.label = 3;
237
+ case 3:
238
+ _i++;
239
+ return [3 /*break*/, 1];
240
+ case 4: return [2 /*return*/];
235
241
  }
236
242
  });
237
- }); }, MAX_SOUND_PARALLEL_LOAD);
243
+ });
238
244
  };
239
245
  Scene.prototype.createSprites = function () {
240
246
  var _this_1 = this;
@@ -258,30 +264,40 @@ var Scene = /** @class */ (function () {
258
264
  }); }, MAX_ASSET_PARALLEL_LOAD);
259
265
  };
260
266
  Scene.prototype.createSounds = function () {
261
- var _this_1 = this;
262
267
  var srcables = [];
263
268
  for (var _i = 0; _i < arguments.length; _i++) {
264
269
  srcables[_i] = arguments[_i];
265
270
  }
266
- return parallel(srcables, function (srcable) { return __awaiter(_this_1, void 0, void 0, function () {
267
- var _a, volumn, src, _b, type, sound;
268
- return __generator(this, function (_c) {
269
- switch (_c.label) {
271
+ return __awaiter(this, void 0, void 0, function () {
272
+ var sounds, _a, srcables_1, srcable, _b, volumn, src, _c, type, sound;
273
+ return __generator(this, function (_d) {
274
+ switch (_d.label) {
270
275
  case 0:
271
- _a = typeof srcable === "string"
276
+ sounds = [];
277
+ _a = 0, srcables_1 = srcables;
278
+ _d.label = 1;
279
+ case 1:
280
+ if (!(_a < srcables_1.length)) return [3 /*break*/, 4];
281
+ srcable = srcables_1[_a];
282
+ _b = typeof srcable === "string"
272
283
  ? { src: srcable, volumn: undefined, type: undefined }
273
- : srcable, volumn = _a.volumn, src = _a.src, _b = _a.type, type = _b === void 0 ? SoundType.ONCE : _b;
284
+ : srcable, volumn = _b.volumn, src = _b.src, _c = _b.type, type = _c === void 0 ? SoundType.ONCE : _c;
274
285
  return [4 /*yield*/, createAssetSound(src, type)];
275
- case 1:
276
- sound = _c.sent();
286
+ case 2:
287
+ sound = _d.sent();
277
288
  if (volumn) {
278
289
  sound.volumn = volumn;
279
290
  }
291
+ sounds.push(sound);
280
292
  this.sounds.push(sound);
281
- return [2 /*return*/, sound];
293
+ _d.label = 3;
294
+ case 3:
295
+ _a++;
296
+ return [3 /*break*/, 1];
297
+ case 4: return [2 /*return*/, sounds];
282
298
  }
283
299
  });
284
- }); }, MAX_SOUND_PARALLEL_LOAD);
300
+ });
285
301
  };
286
302
  Scene.prototype.mapSprites = function () {
287
303
  var srcs = [];
@@ -328,38 +344,31 @@ var Scene = /** @class */ (function () {
328
344
  srcs[_i] = arguments[_i];
329
345
  }
330
346
  return __awaiter(this, void 0, void 0, function () {
331
- var soundsDecor;
332
- var _this_1 = this;
333
- return __generator(this, function (_a) {
334
- switch (_a.label) {
347
+ var soundsDecor, index, _a, soundsDecor_1, decor, src, sound;
348
+ return __generator(this, function (_b) {
349
+ switch (_b.label) {
335
350
  case 0:
336
351
  soundsDecor = this.soundsDecor.filter(function (decor) { return !decor.src; });
337
- return [4 /*yield*/, parallel(srcs, function (src, _a) {
338
- var realIndex = _a.realIndex;
339
- return __awaiter(_this_1, void 0, void 0, function () {
340
- var decor, sound;
341
- return __generator(this, function (_b) {
342
- switch (_b.label) {
343
- case 0:
344
- decor = soundsDecor[realIndex];
345
- if (!decor) return [3 /*break*/, 2];
346
- return [4 /*yield*/, createAssetSound(src, decor.type)];
347
- case 1:
348
- sound = _b.sent();
349
- if (decor.volumn) {
350
- sound.volumn = decor.volumn;
351
- }
352
- this[decor.propertyKey] = sound;
353
- this.sounds.push(sound);
354
- _b.label = 2;
355
- case 2: return [2 /*return*/];
356
- }
357
- });
358
- });
359
- }, MAX_ASSET_PARALLEL_LOAD)];
352
+ index = 0;
353
+ _a = 0, soundsDecor_1 = soundsDecor;
354
+ _b.label = 1;
360
355
  case 1:
361
- _a.sent();
362
- return [2 /*return*/];
356
+ if (!(_a < soundsDecor_1.length)) return [3 /*break*/, 4];
357
+ decor = soundsDecor_1[_a];
358
+ src = srcs[index++];
359
+ return [4 /*yield*/, createAssetSound(src, decor.type)];
360
+ case 2:
361
+ sound = _b.sent();
362
+ if (decor.volumn) {
363
+ sound.volumn = decor.volumn;
364
+ }
365
+ this[decor.propertyKey] = sound;
366
+ this.sounds.push(sound);
367
+ _b.label = 3;
368
+ case 3:
369
+ _a++;
370
+ return [3 /*break*/, 1];
371
+ case 4: return [2 /*return*/];
363
372
  }
364
373
  });
365
374
  });
@@ -378,20 +387,18 @@ var Scene = /** @class */ (function () {
378
387
  // if delay less than 0, it will wait forever
379
388
  _a.sent();
380
389
  this.loadedAssets = false;
381
- return [4 /*yield*/, this.loadSprites().catch(function (err) {
382
- console.warn("Load sprites fail", err.toString());
383
- })];
390
+ return [4 /*yield*/, Promise.all([
391
+ this.loadSounds().catch(function (err) {
392
+ console.warn("Load sounds fail", err.toString());
393
+ }),
394
+ this.loadSprites().catch(function (err) {
395
+ console.warn("Load sprites fail", err.toString());
396
+ }),
397
+ this.onLoadAssets().catch(function (err) {
398
+ console.warn("Load assets fail", err.toString());
399
+ }),
400
+ ])];
384
401
  case 2:
385
- _a.sent();
386
- return [4 /*yield*/, this.loadSounds().catch(function (err) {
387
- console.warn("Load sounds fail", err.toString());
388
- })];
389
- case 3:
390
- _a.sent();
391
- return [4 /*yield*/, this.onLoadAssets().catch(function (err) {
392
- console.warn("Load assets fail", err.toString());
393
- })];
394
- case 4:
395
402
  _a.sent();
396
403
  this.loadedAssets = true;
397
404
  return [2 /*return*/];
@@ -418,8 +425,23 @@ var Scene = /** @class */ (function () {
418
425
  };
419
426
  };
420
427
  Scene.prototype.bootstrap = function (camera) {
428
+ var _this_1 = this;
421
429
  this.listenNativeEvents();
422
430
  this.bootSoundOptions();
431
+ this.onProcessStateChangeListener(function (isForeground) {
432
+ if (isForeground) {
433
+ for (var _i = 0, _a = _this_1.sounds; _i < _a.length; _i++) {
434
+ var sound = _a[_i];
435
+ sound.resume();
436
+ }
437
+ }
438
+ else {
439
+ for (var _b = 0, _c = _this_1.sounds; _b < _c.length; _b++) {
440
+ var sound = _c[_b];
441
+ sound.pause();
442
+ }
443
+ }
444
+ });
423
445
  this.worldManagement = new WorldManagement(camera, this);
424
446
  var components = this.getComponents(camera);
425
447
  var layerIndex = 0;
@@ -7,7 +7,10 @@ export declare class Sound {
7
7
  constructor(type?: SoundType);
8
8
  get volumn(): number;
9
9
  set volumn(vol: number);
10
+ get isStopped(): boolean;
10
11
  playNow(): Promise<void>;
12
+ pause(): Promise<void>;
13
+ resume(): Promise<void>;
11
14
  stop(): Promise<void>;
12
15
  play(): Promise<void>;
13
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sound.d.ts","sourceRoot":"","sources":["../../src/classes/sound.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,qBAAa,KAAK;IAWJ,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVjC,MAAM,CAAC,UAAU,EAAE,eAAe,CAOhC;IACF,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAe;gBAEnB,IAAI,GAAE,SAA0B;IAE7D,IAAI,MAAM,IAIM,MAAM,CAFrB;IAED,IAAI,MAAM,CAAC,GAAG,EAAE,MAAM,EAErB;IAEK,OAAO;IAQP,IAAI;IAWJ,IAAI;CAYX"}
1
+ {"version":3,"file":"sound.d.ts","sourceRoot":"","sources":["../../src/classes/sound.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,qBAAa,KAAK;IAWJ,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVjC,MAAM,CAAC,UAAU,EAAE,eAAe,CAOhC;IACF,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAe;gBAEnB,IAAI,GAAE,SAA0B;IAE7D,IAAI,MAAM,IAIM,MAAM,CAFrB;IAED,IAAI,MAAM,CAAC,GAAG,EAAE,MAAM,EAErB;IAED,IAAI,SAAS,YAEZ;IAEK,OAAO;IAQP,KAAK;IAIL,MAAM;IAQN,IAAI;IAQJ,IAAI;CAYX"}
@@ -53,6 +53,13 @@ var Sound = /** @class */ (function () {
53
53
  enumerable: false,
54
54
  configurable: true
55
55
  });
56
+ Object.defineProperty(Sound.prototype, "isStopped", {
57
+ get: function () {
58
+ return this.native.paused && this.native.currentTime === 0;
59
+ },
60
+ enumerable: false,
61
+ configurable: true
62
+ });
56
63
  Sound.prototype.playNow = function () {
57
64
  return __awaiter(this, void 0, void 0, function () {
58
65
  var canPlay;
@@ -71,17 +78,41 @@ var Sound = /** @class */ (function () {
71
78
  });
72
79
  });
73
80
  };
81
+ Sound.prototype.pause = function () {
82
+ return __awaiter(this, void 0, void 0, function () {
83
+ return __generator(this, function (_a) {
84
+ switch (_a.label) {
85
+ case 0: return [4 /*yield*/, this.native.pause()];
86
+ case 1:
87
+ _a.sent();
88
+ return [2 /*return*/];
89
+ }
90
+ });
91
+ });
92
+ };
93
+ Sound.prototype.resume = function () {
94
+ return __awaiter(this, void 0, void 0, function () {
95
+ return __generator(this, function (_a) {
96
+ switch (_a.label) {
97
+ case 0:
98
+ if (!!this.isStopped) return [3 /*break*/, 2];
99
+ if (!this.native.paused) return [3 /*break*/, 2];
100
+ return [4 /*yield*/, this.play()];
101
+ case 1:
102
+ _a.sent();
103
+ _a.label = 2;
104
+ case 2: return [2 /*return*/];
105
+ }
106
+ });
107
+ });
108
+ };
74
109
  Sound.prototype.stop = function () {
75
110
  return __awaiter(this, void 0, void 0, function () {
76
- var isStoped;
77
111
  return __generator(this, function (_a) {
78
- if (this.native.src) {
79
- isStoped = this.native.paused && this.native.currentTime === 0;
80
- if (!isStoped) {
81
- this.native.pause();
82
- this.native.currentTime = 0;
83
- this.native.loop = false;
84
- }
112
+ if (!this.isStopped) {
113
+ this.native.pause();
114
+ this.native.currentTime = 0;
115
+ this.native.loop = false;
85
116
  }
86
117
  return [2 /*return*/];
87
118
  });
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAiBxC,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAInE;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,KAAK,CAAC,CA8ChB;AAED,wBAAsB,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,oBAQxC;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAO5B;AAED,wBAAsB,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAC3C,KAAK,EAAE,CAAC,EAAE,EACV,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,CAAC,CAAC,EACtE,KAAK,SAAI,GACR,OAAO,CAAC,CAAC,EAAE,CAAC,CAkBd;AAED,wBAAgB,aAAa;;;EAiB5B"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAiBxC,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAInE;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,KAAK,CAAC,CAoDhB;AAED,wBAAsB,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,oBAQxC;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAO5B;AAED,wBAAsB,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAC3C,KAAK,EAAE,CAAC,EAAE,EACV,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,CAAC,CAAC,EACtE,KAAK,SAAI,GACR,OAAO,CAAC,CAAC,EAAE,CAAC,CAkBd;AAED,wBAAgB,aAAa;;;EAiB5B"}
package/lib/utils.js CHANGED
@@ -65,19 +65,28 @@ export function createAssetSound(src, type) {
65
65
  media = new Sound(type);
66
66
  return [2 /*return*/, new Promise(function (res, rej) {
67
67
  media.native.onloadedmetadata = function () {
68
- var timer = setInterval(function () {
69
- if (media.native.duration != null) {
70
- res(media);
71
- clearInterval(timer);
72
- }
73
- else {
74
- console.warn(src, "Wait for duration");
75
- }
76
- }, 10);
68
+ if (media.native.duration != null) {
69
+ res(media);
70
+ }
71
+ else {
72
+ var timer_1 = setInterval(function () {
73
+ if (media.native.duration != null) {
74
+ res(media);
75
+ clearInterval(timer_1);
76
+ }
77
+ else {
78
+ console.warn(src, "Wait for duration");
79
+ }
80
+ }, 10);
81
+ }
77
82
  };
78
83
  media.native.onerror = function (e) {
79
84
  if (e instanceof Event) {
80
85
  var targetError = e.currentTarget.error;
86
+ var expectedSrc = src;
87
+ var realSrc = e.currentTarget.src;
88
+ console.warn("[Audio Error] Expected src: " + expectedSrc);
89
+ console.warn("[Audio Error] Real src: " + realSrc);
81
90
  switch (targetError.code) {
82
91
  case targetError.MEDIA_ERR_ABORTED:
83
92
  console.warn("You aborted the video playback.");
@@ -89,7 +98,7 @@ export function createAssetSound(src, type) {
89
98
  console.warn("The audio playback was aborted due to a corruption problem or because the video used features your browser did not support.");
90
99
  break;
91
100
  case targetError.MEDIA_ERR_SRC_NOT_SUPPORTED:
92
- console.warn(src, e.currentTarget.src, "The video audio not be loaded, either because the server or network failed or because the format is not supported.");
101
+ console.warn("The video audio not be loaded, either because the server or network failed or because the format is not supported.");
93
102
  break;
94
103
  default:
95
104
  console.warn("An unknown error occurred.");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-simple-game-engine",
3
- "version": "0.2.6",
3
+ "version": "0.2.7",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib",