@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.
- package/README.md +20 -3
- package/dist/phaser.cjs +1 -1
- package/dist/phaser.cjs.LICENSE.txt +1 -1
- package/dist/phaser.cjs.map +1 -1
- package/dist/phaser.js +1 -1
- package/dist/phaser.js.LICENSE.txt +1 -1
- package/dist/phaser.js.map +1 -1
- package/package.json +23 -17
- package/src/index.js +142 -0
- package/src/phaser/core/animation.js +355 -0
- package/src/phaser/core/animation_manager.js +238 -0
- package/src/phaser/core/animation_parser.js +133 -0
- package/src/phaser/core/array_set.js +107 -0
- package/src/phaser/core/cache.js +558 -0
- package/src/phaser/core/const.js +106 -0
- package/src/phaser/core/device.js +67 -0
- package/src/phaser/core/device_util.js +388 -0
- package/src/phaser/core/dom.js +207 -0
- package/src/phaser/core/event_manager.js +243 -0
- package/src/phaser/core/factory.js +74 -0
- package/src/phaser/core/frame.js +75 -0
- package/src/phaser/core/frame_data.js +84 -0
- package/src/phaser/core/frame_util.js +33 -0
- package/src/phaser/core/game.js +412 -0
- package/src/phaser/core/input.js +401 -0
- package/src/phaser/core/input_button.js +102 -0
- package/src/phaser/core/input_handler.js +687 -0
- package/src/phaser/core/input_mouse.js +289 -0
- package/src/phaser/core/input_mspointer.js +197 -0
- package/src/phaser/core/input_pointer.js +427 -0
- package/src/phaser/core/input_touch.js +157 -0
- package/src/phaser/core/loader.js +1057 -0
- package/src/phaser/core/loader_parser.js +109 -0
- package/src/phaser/core/raf.js +46 -0
- package/src/phaser/core/raf_fb.js +75 -0
- package/src/phaser/core/raf_to.js +34 -0
- package/src/phaser/core/scale_manager.js +806 -0
- package/src/phaser/core/scene.js +65 -0
- package/src/phaser/core/scene_manager.js +309 -0
- package/src/phaser/core/signal.js +175 -0
- package/src/phaser/core/signal_binding.js +69 -0
- package/src/phaser/core/sound.js +538 -0
- package/src/phaser/core/sound_manager.js +364 -0
- package/src/phaser/core/stage.js +108 -0
- package/src/phaser/core/time.js +203 -0
- package/src/phaser/core/timer.js +276 -0
- package/src/phaser/core/timer_event.js +21 -0
- package/src/phaser/core/tween.js +329 -0
- package/src/phaser/core/tween_data.js +258 -0
- package/src/phaser/core/tween_easing.js +341 -0
- package/src/phaser/core/tween_manager.js +185 -0
- package/src/phaser/core/world.js +18 -0
- package/src/phaser/display/bitmap_text.js +322 -0
- package/src/phaser/display/button.js +194 -0
- package/src/phaser/display/canvas/buffer.js +36 -0
- package/src/phaser/display/canvas/graphics.js +227 -0
- package/src/phaser/display/canvas/masker.js +39 -0
- package/src/phaser/display/canvas/pool.js +126 -0
- package/src/phaser/display/canvas/renderer.js +123 -0
- package/src/phaser/display/canvas/tinter.js +144 -0
- package/src/phaser/display/canvas/util.js +159 -0
- package/src/phaser/display/display_object.js +597 -0
- package/src/phaser/display/graphics.js +723 -0
- package/src/phaser/display/graphics_data.js +27 -0
- package/src/phaser/display/graphics_data_util.js +15 -0
- package/src/phaser/display/group.js +227 -0
- package/src/phaser/display/image.js +288 -0
- package/src/phaser/display/sprite_batch.js +15 -0
- package/src/phaser/display/sprite_util.js +250 -0
- package/src/phaser/display/text.js +1089 -0
- package/src/phaser/display/webgl/abstract_filter.js +25 -0
- package/src/phaser/display/webgl/base_texture.js +68 -0
- package/src/phaser/display/webgl/blend_manager.js +35 -0
- package/src/phaser/display/webgl/earcut.js +662 -0
- package/src/phaser/display/webgl/earcut_node.js +28 -0
- package/src/phaser/display/webgl/fast_sprite_batch.js +242 -0
- package/src/phaser/display/webgl/filter_manager.js +46 -0
- package/src/phaser/display/webgl/filter_texture.js +61 -0
- package/src/phaser/display/webgl/graphics.js +624 -0
- package/src/phaser/display/webgl/graphics_data.js +42 -0
- package/src/phaser/display/webgl/mask_manager.js +36 -0
- package/src/phaser/display/webgl/render_texture.js +81 -0
- package/src/phaser/display/webgl/renderer.js +234 -0
- package/src/phaser/display/webgl/shader/complex.js +74 -0
- package/src/phaser/display/webgl/shader/fast.js +97 -0
- package/src/phaser/display/webgl/shader/normal.js +225 -0
- package/src/phaser/display/webgl/shader/primitive.js +72 -0
- package/src/phaser/display/webgl/shader/strip.js +77 -0
- package/src/phaser/display/webgl/shader_manager.js +89 -0
- package/src/phaser/display/webgl/sprite_batch.js +320 -0
- package/src/phaser/display/webgl/stencil_manager.js +170 -0
- package/src/phaser/display/webgl/texture.js +117 -0
- package/src/phaser/display/webgl/texture_util.js +34 -0
- package/src/phaser/display/webgl/util.js +78 -0
- package/src/phaser/geom/circle.js +186 -0
- package/src/phaser/geom/ellipse.js +65 -0
- package/src/phaser/geom/line.js +190 -0
- package/src/phaser/geom/matrix.js +147 -0
- package/src/phaser/geom/point.js +164 -0
- package/src/phaser/geom/polygon.js +140 -0
- package/src/phaser/geom/rectangle.js +306 -0
- package/src/phaser/geom/rounded_rectangle.js +36 -0
- package/src/phaser/geom/util/circle.js +122 -0
- package/src/phaser/geom/util/ellipse.js +34 -0
- package/src/phaser/geom/util/line.js +135 -0
- package/src/phaser/geom/util/matrix.js +53 -0
- package/src/phaser/geom/util/point.js +296 -0
- package/src/phaser/geom/util/polygon.js +28 -0
- package/src/phaser/geom/util/rectangle.js +229 -0
- package/src/phaser/geom/util/rounded_rectangle.js +32 -0
- package/src/phaser/util/math.js +297 -0
- package/src/phaser/util/string.js +32 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author Andras Csizmadia <andras@vpmedia.hu>
|
|
3
|
+
* @author Richard Davey <rich@photonstorm.com>
|
|
4
|
+
* @author Mat Groves http://matgroves.com/ @Doormat23
|
|
5
|
+
* @copyright Copyright (c) 2018-present Richard Davey, Photon Storm Ltd., Andras Csizmadia <andras@vpmedia.hu> (www.vpmedia.hu)
|
|
6
|
+
*/
|
|
7
|
+
import { create as createCanvas } from './pool';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
* @param {object} parent TBD
|
|
12
|
+
* @param {number} width TBD
|
|
13
|
+
* @param {number} height TBD
|
|
14
|
+
* @param {string} id TBD
|
|
15
|
+
* @param {boolean} skipPool TBD
|
|
16
|
+
* @returns {object} TBD
|
|
17
|
+
*/
|
|
18
|
+
export function create(parent, width, height, id, skipPool) {
|
|
19
|
+
width = width || 256;
|
|
20
|
+
height = height || 256;
|
|
21
|
+
const canvas = (skipPool) ? document.createElement('canvas') : createCanvas(parent, width, height);
|
|
22
|
+
if (typeof id === 'string' && id !== '') {
|
|
23
|
+
canvas.id = id;
|
|
24
|
+
}
|
|
25
|
+
canvas.width = width;
|
|
26
|
+
canvas.height = height;
|
|
27
|
+
canvas.style.display = 'block';
|
|
28
|
+
return canvas;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
*
|
|
33
|
+
* @param {object} canvas TBD
|
|
34
|
+
* @param {string} color TBD
|
|
35
|
+
* @returns {object} TBD
|
|
36
|
+
*/
|
|
37
|
+
export function setBackgroundColor(canvas, color) {
|
|
38
|
+
color = color || 'rgb(0,0,0)';
|
|
39
|
+
canvas.style.backgroundColor = color;
|
|
40
|
+
return canvas;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
*
|
|
45
|
+
* @param {object} canvas TBD
|
|
46
|
+
* @param {string} value TBD
|
|
47
|
+
* @returns {object} TBD
|
|
48
|
+
*/
|
|
49
|
+
export function setTouchAction(canvas, value) {
|
|
50
|
+
value = value || 'none';
|
|
51
|
+
canvas.style.msTouchAction = value;
|
|
52
|
+
canvas.style['ms-touch-action'] = value;
|
|
53
|
+
canvas.style['touch-action'] = value;
|
|
54
|
+
return canvas;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
*
|
|
59
|
+
* @param {object} canvas TBD
|
|
60
|
+
* @param {string} value TBD
|
|
61
|
+
* @returns {object} TBD
|
|
62
|
+
*/
|
|
63
|
+
export function setUserSelect(canvas, value) {
|
|
64
|
+
value = value || 'none';
|
|
65
|
+
canvas.style['-webkit-touch-callout'] = value;
|
|
66
|
+
canvas.style['-webkit-user-select'] = value;
|
|
67
|
+
canvas.style['-khtml-user-select'] = value;
|
|
68
|
+
canvas.style['-moz-user-select'] = value;
|
|
69
|
+
canvas.style['-ms-user-select'] = value;
|
|
70
|
+
canvas.style['user-select'] = value;
|
|
71
|
+
canvas.style['-webkit-tap-highlight-color'] = 'rgba(0, 0, 0, 0)';
|
|
72
|
+
return canvas;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
*
|
|
77
|
+
* @param {object} canvas TBD
|
|
78
|
+
* @param {object} parent TBD
|
|
79
|
+
* @param {boolean} overflowHidden TBD
|
|
80
|
+
* @returns {object} TBD
|
|
81
|
+
*/
|
|
82
|
+
export function addToDOM(canvas, parent, overflowHidden = true) {
|
|
83
|
+
let target;
|
|
84
|
+
if (parent) {
|
|
85
|
+
if (typeof parent === 'string') {
|
|
86
|
+
// hopefully an element ID
|
|
87
|
+
target = document.getElementById(parent);
|
|
88
|
+
} else if (typeof parent === 'object' && parent.nodeType === 1) {
|
|
89
|
+
// quick test for a HTMLelement
|
|
90
|
+
target = parent;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
// Fallback, covers an invalid ID and a non HTMLelement object
|
|
94
|
+
if (!target) {
|
|
95
|
+
target = document.body;
|
|
96
|
+
}
|
|
97
|
+
if (overflowHidden && target.style) {
|
|
98
|
+
target.style.overflow = 'hidden';
|
|
99
|
+
}
|
|
100
|
+
target.appendChild(canvas);
|
|
101
|
+
return canvas;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
*
|
|
106
|
+
* @param {object} canvas TBD
|
|
107
|
+
*/
|
|
108
|
+
export function removeFromDOM(canvas) {
|
|
109
|
+
if (canvas.parentNode) {
|
|
110
|
+
canvas.parentNode.removeChild(canvas);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
*
|
|
116
|
+
* @param {object} context TBD
|
|
117
|
+
* @param {number} translateX TBD
|
|
118
|
+
* @param {number} translateY TBD
|
|
119
|
+
* @param {number} scaleX TBD
|
|
120
|
+
* @param {number} scaleY TBD
|
|
121
|
+
* @param {number} skewX TBD
|
|
122
|
+
* @param {number} skewY TBD
|
|
123
|
+
* @returns {object} TBD
|
|
124
|
+
*/
|
|
125
|
+
export function setTransform(context, translateX, translateY, scaleX, scaleY, skewX, skewY) {
|
|
126
|
+
context.setTransform(scaleX, skewX, skewY, scaleY, translateX, translateY);
|
|
127
|
+
return context;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
*
|
|
132
|
+
* @param {object} context TBD
|
|
133
|
+
* @returns {object} TBD
|
|
134
|
+
*/
|
|
135
|
+
export function getSmoothingPrefix(context) {
|
|
136
|
+
const VENDORS = ['i', 'webkitI', 'msI', 'mozI', 'oI'];
|
|
137
|
+
for (let i = 0; i < VENDORS.length; i += 1) {
|
|
138
|
+
const prefix = VENDORS[i];
|
|
139
|
+
const s = VENDORS[prefix] + 'mageSmoothingEnabled';
|
|
140
|
+
if (context && context[s]) {
|
|
141
|
+
return s;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
*
|
|
149
|
+
* @param {object} context TBD
|
|
150
|
+
* @param {number} value TBD
|
|
151
|
+
* @returns {object} TBD
|
|
152
|
+
*/
|
|
153
|
+
export function setSmoothingEnabled(context, value) {
|
|
154
|
+
const s = getSmoothingPrefix(context);
|
|
155
|
+
if (s) {
|
|
156
|
+
context[s] = value;
|
|
157
|
+
}
|
|
158
|
+
return context;
|
|
159
|
+
}
|