react-simple-game-engine 0.2.5 → 0.2.8

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.
@@ -92,10 +92,10 @@ var Scaler = /** @class */ (function () {
92
92
  Scaler.prototype.update = function () {
93
93
  if (this._layoutMode === LayoutMode.LANDSCAPE) {
94
94
  if (this._canvasSize.width >= this._canvasSize.height) {
95
- this._value = this._canvasSize.height / this._gameSize.height;
95
+ this._value = this._canvasSize.width / this._gameSize.width;
96
96
  }
97
97
  else {
98
- this._value = this._canvasSize.width / this._gameSize.width;
98
+ this._value = this._canvasSize.height / this._gameSize.height;
99
99
  }
100
100
  }
101
101
  else {
@@ -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":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AASlC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EACL,MAAM,EACN,eAAe,EAEf,eAAe,EAEhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAK5C,aAAK,0BAA0B,CAAC,CAAC,SAAS,SAAS,IAAI,CACrD,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,KACxB,IAAI,CAAC;AACV,aAAK,kBAAkB,GAAG,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;AAC1D,aAAK,yBAAyB,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AAC7D,aAAK,0BAA0B,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;AAE3E,8BAAsB,KAAK,CAAC,GAAG,GAAG,GAAG;IACnC,OAAO,CAAC,EAAE,CAAqB;IAC/B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,wBAAwB,CAAwB;IAExD,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAGpC;IACP,OAAO,CAAC,QAAQ,CAAC,qCAAqC,CACjD;IACL,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAC3C;IACL,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CACvC;IACL,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAE7C,SAAgB,MAAM,EAAE,KAAK,EAAE,CAAM;IACrC,SAAgB,OAAO,EAAE,MAAM,EAAE,CAAM;IACvC,SAAgB,SAAS,EAAE,MAAM,CAA8C;IAExE,WAAW,EAAE,MAAM,CAAK;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,eAAe,CAAC;aAEhB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,EAAE;;IAY3E,IAAI,EAAE,qCAGL;IAED,IAAI,OAAO,QAEV;IAED,IAAI,sBAAsB,IAAI,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,CAElE;IAED,IAAI,gBAAgB,IAAI,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAEtD;IAED,IAAI,sBAAsB,CACxB,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAMxD;IAED,IAAI,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAKrE;IAED,OAAO,CAAC,gBAAgB;IAYxB,SAAS,CAAC,eAAe,IAAI,eAAe;IAI5C,SAAS,CAAC,MAAM;IAEhB,SAAS,CAAC,UAAU,IAAI,GAAG;IAI3B,IAAI,YAAY,IAIuB,OAAO,CAF7C;IAED,OAAO,KAAK,YAAY,QAGvB;IAED,4BAA4B,CAAC,IAAI,EAAE,0BAA0B;IAW7D,wBAAwB,CAAC,IAAI,EAAE,0BAA0B,CAAC,SAAS,CAAC,IAAI,CAAC;IAUzE,8BAA8B,CAC5B,IAAI,EAAE,0BAA0B,CAAC,SAAS,CAAC,UAAU,CAAC;IAWxD,mBAAmB,CAAC,CAAC,GAAG,GAAG,EACzB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAepC,8BAA8B,CAAC,YAAY,EAAE,OAAO;IAOpD,qBAAqB,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAOrD,iBAAiB,CAAC,IAAI,EAAE,kBAAkB;IAI1C,UAAU;IAQV,aAAa,CAAC,GAAG,EAAE,MAAM;IAIzB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,UAAU;IAkBlB,aAAa,CAAC,GAAG,QAAQ,EAAE,CAAC,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE;IAcvD,YAAY,CACV,GAAG,QAAQ,EAAE,CAAC,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC,EAAE;IAwBxE,UAAU,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE;IAgB5B,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE;IAmB3B,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM;IAiBzB,YAAY;IAElB,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE;QACrC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;KACjC,GAAG,MAAM,CAAC,CAAC,CAAC;IAIb,kBAAkB;IAelB,SAAS,CAAC,MAAM,EAAE,MAAM;IAoBxB,SAAS,CAAC,MAAM;IAChB,SAAS,CAAC,QAAQ;IAElB,MAAM;CAUP"}
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,15 +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*/, Promise.all([this.loadSounds(), this.loadSprites()]).catch(function (err) {
382
- console.warn("[1] Load assets 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.onLoadAssets().catch(function (err) {
387
- console.warn("[2] Load assets fail", err.toString());
388
- })];
389
- case 3:
390
402
  _a.sent();
391
403
  this.loadedAssets = true;
392
404
  return [2 /*return*/];
@@ -413,8 +425,28 @@ var Scene = /** @class */ (function () {
413
425
  };
414
426
  };
415
427
  Scene.prototype.bootstrap = function (camera) {
428
+ var _this_1 = this;
416
429
  this.listenNativeEvents();
417
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
+ // only resume background sounds
436
+ if (sound.type === SoundType.BACKGROUND &&
437
+ window.Renderer.isLooping) {
438
+ sound.resume();
439
+ }
440
+ }
441
+ }
442
+ else {
443
+ // pause all sounds
444
+ for (var _b = 0, _c = _this_1.sounds; _b < _c.length; _b++) {
445
+ var sound = _c[_b];
446
+ sound.pause();
447
+ }
448
+ }
449
+ });
418
450
  this.worldManagement = new WorldManagement(camera, this);
419
451
  var components = this.getComponents(camera);
420
452
  var layerIndex = 0;
@@ -1,13 +1,16 @@
1
1
  import { SoundType } from "../export-enums";
2
2
  import { SoundManagement } from "../export-types";
3
3
  export declare class Sound {
4
- private readonly type;
4
+ readonly type: SoundType;
5
5
  static Management: SoundManagement;
6
6
  readonly native: HTMLAudioElement;
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;aAWY,IAAI,EAAE,SAAS;IAV3C,MAAM,CAAC,UAAU,EAAE,eAAe,CAOhC;IACF,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAe;gBAEpB,IAAI,GAAE,SAA0B;IAE5D,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,CA2ChB;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.");
@@ -98,7 +107,8 @@ export function createAssetSound(src, type) {
98
107
  }
99
108
  rej(e);
100
109
  };
101
- media.native.preload = "metadata";
110
+ media.native.setAttribute("preload", "metadata");
111
+ media.native.setAttribute("type", "audio/wav");
102
112
  media.native.src = src;
103
113
  })];
104
114
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-simple-game-engine",
3
- "version": "0.2.5",
3
+ "version": "0.2.8",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib",