@vpmedia/phaser 1.0.1 → 1.0.3

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.
Files changed (112) hide show
  1. package/README.md +20 -3
  2. package/dist/phaser.cjs +1 -1
  3. package/dist/phaser.cjs.LICENSE.txt +1 -1
  4. package/dist/phaser.cjs.map +1 -1
  5. package/dist/phaser.js +1 -1
  6. package/dist/phaser.js.LICENSE.txt +1 -1
  7. package/dist/phaser.js.map +1 -1
  8. package/package.json +23 -17
  9. package/src/index.js +142 -0
  10. package/src/phaser/core/animation.js +355 -0
  11. package/src/phaser/core/animation_manager.js +238 -0
  12. package/src/phaser/core/animation_parser.js +133 -0
  13. package/src/phaser/core/array_set.js +107 -0
  14. package/src/phaser/core/cache.js +558 -0
  15. package/src/phaser/core/const.js +106 -0
  16. package/src/phaser/core/device.js +67 -0
  17. package/src/phaser/core/device_util.js +388 -0
  18. package/src/phaser/core/dom.js +207 -0
  19. package/src/phaser/core/event_manager.js +243 -0
  20. package/src/phaser/core/factory.js +74 -0
  21. package/src/phaser/core/frame.js +75 -0
  22. package/src/phaser/core/frame_data.js +84 -0
  23. package/src/phaser/core/frame_util.js +33 -0
  24. package/src/phaser/core/game.js +412 -0
  25. package/src/phaser/core/input.js +401 -0
  26. package/src/phaser/core/input_button.js +102 -0
  27. package/src/phaser/core/input_handler.js +687 -0
  28. package/src/phaser/core/input_mouse.js +289 -0
  29. package/src/phaser/core/input_mspointer.js +197 -0
  30. package/src/phaser/core/input_pointer.js +427 -0
  31. package/src/phaser/core/input_touch.js +157 -0
  32. package/src/phaser/core/loader.js +1057 -0
  33. package/src/phaser/core/loader_parser.js +109 -0
  34. package/src/phaser/core/raf.js +46 -0
  35. package/src/phaser/core/raf_fb.js +75 -0
  36. package/src/phaser/core/raf_to.js +34 -0
  37. package/src/phaser/core/scale_manager.js +806 -0
  38. package/src/phaser/core/scene.js +65 -0
  39. package/src/phaser/core/scene_manager.js +309 -0
  40. package/src/phaser/core/signal.js +175 -0
  41. package/src/phaser/core/signal_binding.js +69 -0
  42. package/src/phaser/core/sound.js +538 -0
  43. package/src/phaser/core/sound_manager.js +364 -0
  44. package/src/phaser/core/stage.js +108 -0
  45. package/src/phaser/core/time.js +203 -0
  46. package/src/phaser/core/timer.js +276 -0
  47. package/src/phaser/core/timer_event.js +21 -0
  48. package/src/phaser/core/tween.js +329 -0
  49. package/src/phaser/core/tween_data.js +258 -0
  50. package/src/phaser/core/tween_easing.js +341 -0
  51. package/src/phaser/core/tween_manager.js +185 -0
  52. package/src/phaser/core/world.js +18 -0
  53. package/src/phaser/display/bitmap_text.js +322 -0
  54. package/src/phaser/display/button.js +194 -0
  55. package/src/phaser/display/canvas/buffer.js +36 -0
  56. package/src/phaser/display/canvas/graphics.js +227 -0
  57. package/src/phaser/display/canvas/masker.js +39 -0
  58. package/src/phaser/display/canvas/pool.js +126 -0
  59. package/src/phaser/display/canvas/renderer.js +123 -0
  60. package/src/phaser/display/canvas/tinter.js +144 -0
  61. package/src/phaser/display/canvas/util.js +159 -0
  62. package/src/phaser/display/display_object.js +597 -0
  63. package/src/phaser/display/graphics.js +723 -0
  64. package/src/phaser/display/graphics_data.js +27 -0
  65. package/src/phaser/display/graphics_data_util.js +15 -0
  66. package/src/phaser/display/group.js +227 -0
  67. package/src/phaser/display/image.js +288 -0
  68. package/src/phaser/display/sprite_batch.js +15 -0
  69. package/src/phaser/display/sprite_util.js +250 -0
  70. package/src/phaser/display/text.js +1089 -0
  71. package/src/phaser/display/webgl/abstract_filter.js +25 -0
  72. package/src/phaser/display/webgl/base_texture.js +68 -0
  73. package/src/phaser/display/webgl/blend_manager.js +35 -0
  74. package/src/phaser/display/webgl/earcut.js +662 -0
  75. package/src/phaser/display/webgl/earcut_node.js +28 -0
  76. package/src/phaser/display/webgl/fast_sprite_batch.js +242 -0
  77. package/src/phaser/display/webgl/filter_manager.js +46 -0
  78. package/src/phaser/display/webgl/filter_texture.js +61 -0
  79. package/src/phaser/display/webgl/graphics.js +624 -0
  80. package/src/phaser/display/webgl/graphics_data.js +42 -0
  81. package/src/phaser/display/webgl/mask_manager.js +36 -0
  82. package/src/phaser/display/webgl/render_texture.js +81 -0
  83. package/src/phaser/display/webgl/renderer.js +234 -0
  84. package/src/phaser/display/webgl/shader/complex.js +74 -0
  85. package/src/phaser/display/webgl/shader/fast.js +97 -0
  86. package/src/phaser/display/webgl/shader/normal.js +225 -0
  87. package/src/phaser/display/webgl/shader/primitive.js +72 -0
  88. package/src/phaser/display/webgl/shader/strip.js +77 -0
  89. package/src/phaser/display/webgl/shader_manager.js +89 -0
  90. package/src/phaser/display/webgl/sprite_batch.js +320 -0
  91. package/src/phaser/display/webgl/stencil_manager.js +170 -0
  92. package/src/phaser/display/webgl/texture.js +117 -0
  93. package/src/phaser/display/webgl/texture_util.js +34 -0
  94. package/src/phaser/display/webgl/util.js +78 -0
  95. package/src/phaser/geom/circle.js +186 -0
  96. package/src/phaser/geom/ellipse.js +65 -0
  97. package/src/phaser/geom/line.js +190 -0
  98. package/src/phaser/geom/matrix.js +147 -0
  99. package/src/phaser/geom/point.js +164 -0
  100. package/src/phaser/geom/polygon.js +140 -0
  101. package/src/phaser/geom/rectangle.js +306 -0
  102. package/src/phaser/geom/rounded_rectangle.js +36 -0
  103. package/src/phaser/geom/util/circle.js +122 -0
  104. package/src/phaser/geom/util/ellipse.js +34 -0
  105. package/src/phaser/geom/util/line.js +135 -0
  106. package/src/phaser/geom/util/matrix.js +53 -0
  107. package/src/phaser/geom/util/point.js +296 -0
  108. package/src/phaser/geom/util/polygon.js +28 -0
  109. package/src/phaser/geom/util/rectangle.js +229 -0
  110. package/src/phaser/geom/util/rounded_rectangle.js +32 -0
  111. package/src/phaser/util/math.js +297 -0
  112. package/src/phaser/util/string.js +32 -0
@@ -0,0 +1,109 @@
1
+ /**
2
+ * @author Andras Csizmadia <andras@vpmedia.hu>
3
+ * @author Richard Davey <rich@photonstorm.com>
4
+ * @copyright Copyright (c) 2018-present Richard Davey, Photon Storm Ltd., Andras Csizmadia <andras@vpmedia.hu> (www.vpmedia.hu)
5
+ */
6
+ import Texture from '../display/webgl/texture';
7
+ import Rectangle from '../geom/rectangle';
8
+
9
+ /**
10
+ *
11
+ * @param {object} baseTexture TBD
12
+ * @param {object} bitmapFontData TBD
13
+ * @returns {object} TBD
14
+ */
15
+ export function finalizeBitmapFont(baseTexture, bitmapFontData) {
16
+ Object.keys(bitmapFontData.chars).forEach((charCode) => {
17
+ const letter = bitmapFontData.chars[charCode];
18
+ letter.texture = new Texture(baseTexture, new Rectangle(letter.x, letter.y, letter.width, letter.height));
19
+ });
20
+ return bitmapFontData;
21
+ }
22
+
23
+ /**
24
+ *
25
+ * @param {object} xml TBD
26
+ * @param {object} baseTexture TBD
27
+ * @param {number} xSpacing TBD
28
+ * @param {number} ySpacing TBD
29
+ * @returns {object} TBD
30
+ */
31
+ export function xmlBitmapFont(xml, baseTexture, xSpacing, ySpacing) {
32
+ const data = {};
33
+ const info = xml.getElementsByTagName('info')[0];
34
+ const common = xml.getElementsByTagName('common')[0];
35
+ data.font = info.getAttribute('face');
36
+ data.size = parseInt(info.getAttribute('size'), 10);
37
+ data.lineHeight = parseInt(common.getAttribute('lineHeight'), 10) + ySpacing;
38
+ data.chars = {};
39
+ const letters = xml.getElementsByTagName('char');
40
+ for (let i = 0; i < letters.length; i += 1) {
41
+ const charCode = parseInt(letters[i].getAttribute('id'), 10);
42
+ data.chars[charCode] = {
43
+ x: parseInt(letters[i].getAttribute('x'), 10),
44
+ y: parseInt(letters[i].getAttribute('y'), 10),
45
+ width: parseInt(letters[i].getAttribute('width'), 10),
46
+ height: parseInt(letters[i].getAttribute('height'), 10),
47
+ xOffset: parseInt(letters[i].getAttribute('xoffset'), 10),
48
+ yOffset: parseInt(letters[i].getAttribute('yoffset'), 10),
49
+ xAdvance: parseInt(letters[i].getAttribute('xadvance'), 10) + xSpacing,
50
+ kerning: {},
51
+ };
52
+ }
53
+ const kernings = xml.getElementsByTagName('kerning');
54
+ for (let i = 0; i < kernings.length; i += 1) {
55
+ const first = parseInt(kernings[i].getAttribute('first'), 10);
56
+ const second = parseInt(kernings[i].getAttribute('second'), 10);
57
+ const amount = parseInt(kernings[i].getAttribute('amount'), 10);
58
+ data.chars[second].kerning[first] = amount;
59
+ }
60
+ return finalizeBitmapFont(baseTexture, data);
61
+ }
62
+
63
+ /**
64
+ *
65
+ * @param {object} xml TBD
66
+ * @param {object} baseTexture TBD
67
+ * @param {number} xSpacing TBD
68
+ * @param {number} ySpacing TBD
69
+ * @returns {object} TBD
70
+ */
71
+ export function bitmapFont(xml, baseTexture, xSpacing, ySpacing) {
72
+ return xmlBitmapFont(xml, baseTexture, xSpacing, ySpacing);
73
+ }
74
+
75
+ /**
76
+ *
77
+ * @param {object} json TBD
78
+ * @param {object} baseTexture TBD
79
+ * @param {number} xSpacing TBD
80
+ * @param {number} ySpacing TBD
81
+ * @returns {object} TBD
82
+ */
83
+ export function jsonBitmapFont(json, baseTexture, xSpacing, ySpacing) {
84
+ const data = {
85
+ font: json.font.info._face,
86
+ size: parseInt(json.font.info._size, 10),
87
+ lineHeight: parseInt(json.font.common._lineHeight, 10) + ySpacing,
88
+ chars: {},
89
+ };
90
+ json.font.chars.char.forEach((letter) => {
91
+ const charCode = parseInt(letter._id, 10);
92
+ data.chars[charCode] = {
93
+ x: parseInt(letter._x, 10),
94
+ y: parseInt(letter._y, 10),
95
+ width: parseInt(letter._width, 10),
96
+ height: parseInt(letter._height, 10),
97
+ xOffset: parseInt(letter._xoffset, 10),
98
+ yOffset: parseInt(letter._yoffset, 10),
99
+ xAdvance: parseInt(letter._xadvance, 10) + xSpacing,
100
+ kerning: {},
101
+ };
102
+ });
103
+ if (json.font.kernings && json.font.kernings.kerning) {
104
+ json.font.kernings.kerning.forEach((kerning) => {
105
+ data.chars[kerning._second].kerning[kerning._first] = parseInt(kerning._amount, 10);
106
+ });
107
+ }
108
+ return finalizeBitmapFont(baseTexture, data);
109
+ }
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @author Andras Csizmadia <andras@vpmedia.hu>
3
+ * @author Richard Davey <rich@photonstorm.com>
4
+ * @copyright Copyright (c) 2018-present Richard Davey, Photon Storm Ltd., Andras Csizmadia <andras@vpmedia.hu> (www.vpmedia.hu)
5
+ */
6
+ export default class {
7
+
8
+ constructor(game) {
9
+ this.game = game;
10
+ this.isRunning = false;
11
+ this.timeoutId = null;
12
+ const vendors = [
13
+ 'ms',
14
+ 'moz',
15
+ 'webkit',
16
+ 'o',
17
+ ];
18
+ for (let x = 0; x < vendors.length && !window.requestAnimationFrame; x += 1) {
19
+ window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
20
+ window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'];
21
+ }
22
+ this.updateBinded = this.update.bind(this);
23
+ // this.updateBinded = time => this.update(time);
24
+ }
25
+
26
+ start() {
27
+ this.isRunning = true;
28
+ this.timeoutId = window.requestAnimationFrame(this.updateBinded);
29
+ }
30
+
31
+ stop() {
32
+ window.cancelAnimationFrame(this.timeoutId);
33
+ this.isRunning = false;
34
+ }
35
+
36
+ update(rafTime) {
37
+ if (!this.isRunning) {
38
+ return;
39
+ }
40
+ // floor the rafTime to make it equivalent to the Date.now() provided by updateSetTimeout (just below)
41
+ // this.game.update(Math.floor(rafTime));
42
+ this.game.update(rafTime);
43
+ this.timeoutId = window.requestAnimationFrame(this.updateBinded);
44
+ }
45
+
46
+ }
@@ -0,0 +1,75 @@
1
+ /**
2
+ * @author Andras Csizmadia <andras@vpmedia.hu>
3
+ * @author Richard Davey <rich@photonstorm.com>
4
+ * @copyright Copyright (c) 2018-present Richard Davey, Photon Storm Ltd., Andras Csizmadia <andras@vpmedia.hu> (www.vpmedia.hu)
5
+ */
6
+ export default class {
7
+
8
+ constructor(game, forceSetTimeOut = false) {
9
+ this.game = game;
10
+ this.forceSetTimeOut = forceSetTimeOut;
11
+ this.isRunning = false;
12
+ this._isSetTimeOut = false;
13
+ this._onLoop = null;
14
+ this._timeOutID = null;
15
+ const vendors = [
16
+ 'ms',
17
+ 'moz',
18
+ 'webkit',
19
+ 'o',
20
+ ];
21
+ for (let x = 0; x < vendors.length && !window.requestAnimationFrame; x += 1) {
22
+ window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
23
+ window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'];
24
+ }
25
+ }
26
+
27
+ start() {
28
+ const scope = this;
29
+ this.isRunning = true;
30
+ if (!window.requestAnimationFrame || this.forceSetTimeOut) {
31
+ this._isSetTimeOut = true;
32
+ this._onLoop = () => scope.updateSetTimeout();
33
+ this._timeOutID = window.setTimeout(this._onLoop, 0);
34
+ } else {
35
+ this._isSetTimeOut = false;
36
+ this._onLoop = time => scope.updateRAF(time);
37
+ this._timeOutID = window.requestAnimationFrame(this._onLoop);
38
+ }
39
+ }
40
+
41
+ stop() {
42
+ this.isRunning = false;
43
+ if (this._isSetTimeOut) {
44
+ window.clearTimeout(this._timeOutID);
45
+ } else {
46
+ window.cancelAnimationFrame(this._timeOutID);
47
+ }
48
+ }
49
+
50
+ updateRAF(rafTime) {
51
+ if (!this.isRunning) {
52
+ return;
53
+ }
54
+ // floor the rafTime to make it equivalent to the Date.now() provided by updateSetTimeout (just below)
55
+ this.game.update(Math.floor(rafTime));
56
+ this._timeOutID = window.requestAnimationFrame(this._onLoop);
57
+ }
58
+
59
+ updateSetTimeout() {
60
+ if (!this.isRunning) {
61
+ return;
62
+ }
63
+ this.game.update(Date.now());
64
+ this._timeOutID = window.setTimeout(this._onLoop, this.game.time.timeToCall);
65
+ }
66
+
67
+ isSetTimeOut() {
68
+ return this._isSetTimeOut;
69
+ }
70
+
71
+ isRAF() {
72
+ return this._isSetTimeOut === false;
73
+ }
74
+
75
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @author Andras Csizmadia <andras@vpmedia.hu>
3
+ * @author Richard Davey <rich@photonstorm.com>
4
+ * @copyright Copyright (c) 2018-present Richard Davey, Photon Storm Ltd., Andras Csizmadia <andras@vpmedia.hu> (www.vpmedia.hu)
5
+ */
6
+ export default class {
7
+
8
+ constructor(game) {
9
+ this.game = game;
10
+ this.isRunning = false;
11
+ this.isSetTimeOut = true;
12
+ this.timeoutId = null;
13
+ }
14
+
15
+ start() {
16
+ this.isRunning = true;
17
+ this.timeoutId = window.setTimeout(this.update, 0);
18
+ }
19
+
20
+ stop() {
21
+ window.clearTimeout(this.timeoutId);
22
+ this.isRunning = false;
23
+ }
24
+
25
+ update() {
26
+ if (!this.isRunning) {
27
+ return;
28
+ }
29
+ this.game.update(Date.now());
30
+ this.timeoutId = window.setTimeout(this.update, this.game.time.timeToCall);
31
+ }
32
+
33
+
34
+ }