@fi4f/hg 0.0.10 → 0.0.12
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 +57 -0
- package/dist/asset.d.ts +46 -0
- package/dist/asset.d.ts.map +1 -0
- package/dist/{core/asset.js → asset.js} +5 -30
- package/dist/asset.js.map +1 -0
- package/dist/{core/cache.d.ts → cache.d.ts} +17 -19
- package/dist/cache.d.ts.map +1 -0
- package/dist/{core/cache.js → cache.js} +5 -43
- package/dist/cache.js.map +1 -0
- package/dist/canvas.d.ts +4 -0
- package/dist/canvas.d.ts.map +1 -0
- package/dist/canvas.js +12 -0
- package/dist/canvas.js.map +1 -0
- package/dist/el.d.ts +6 -0
- package/dist/el.d.ts.map +1 -0
- package/dist/el.js +7 -0
- package/dist/el.js.map +1 -0
- package/dist/event.d.ts.map +1 -0
- package/dist/event.js.map +1 -0
- package/dist/hg.d.ts +13 -12
- package/dist/hg.d.ts.map +1 -1
- package/dist/hg.js +14 -13
- package/dist/hg.js.map +1 -1
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/matrix2.d.ts +152 -0
- package/dist/matrix2.d.ts.map +1 -0
- package/dist/matrix2.js +262 -0
- package/dist/matrix2.js.map +1 -0
- package/dist/matrix3.d.ts +196 -0
- package/dist/matrix3.d.ts.map +1 -0
- package/dist/matrix3.js +352 -0
- package/dist/matrix3.js.map +1 -0
- package/dist/matrix4.d.ts +253 -0
- package/dist/matrix4.d.ts.map +1 -0
- package/dist/matrix4.js +465 -0
- package/dist/matrix4.js.map +1 -0
- package/dist/{core/scene.d.ts → scene.d.ts} +2 -3
- package/dist/scene.d.ts.map +1 -0
- package/dist/scene.js.map +1 -0
- package/dist/sprite.d.ts +24 -0
- package/dist/sprite.d.ts.map +1 -0
- package/dist/sprite.js +49 -0
- package/dist/sprite.js.map +1 -0
- package/dist/stage.d.ts +100 -0
- package/dist/stage.d.ts.map +1 -0
- package/dist/stage.js +303 -0
- package/dist/stage.js.map +1 -0
- package/dist/vector2.d.ts +114 -0
- package/dist/vector2.d.ts.map +1 -0
- package/dist/vector2.js +168 -0
- package/dist/vector2.js.map +1 -0
- package/dist/vector3.d.ts +126 -0
- package/dist/vector3.d.ts.map +1 -0
- package/dist/vector3.js +190 -0
- package/dist/vector3.js.map +1 -0
- package/dist/vector4.d.ts +135 -0
- package/dist/vector4.d.ts.map +1 -0
- package/dist/vector4.js +209 -0
- package/dist/vector4.js.map +1 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js.map +1 -0
- package/package.json +1 -1
- package/dist/core/asset.d.ts +0 -71
- package/dist/core/asset.d.ts.map +0 -1
- package/dist/core/asset.js.map +0 -1
- package/dist/core/cache.d.ts.map +0 -1
- package/dist/core/cache.js.map +0 -1
- package/dist/core/event.d.ts.map +0 -1
- package/dist/core/event.js.map +0 -1
- package/dist/core/scene.d.ts.map +0 -1
- package/dist/core/scene.js.map +0 -1
- package/dist/core/stage.d.ts +0 -130
- package/dist/core/stage.d.ts.map +0 -1
- package/dist/core/stage.js +0 -308
- package/dist/core/stage.js.map +0 -1
- package/dist/math/index.d.ts +0 -6
- package/dist/math/index.d.ts.map +0 -1
- package/dist/math/index.js +0 -6
- package/dist/math/index.js.map +0 -1
- package/dist/math/matrix2.d.ts +0 -58
- package/dist/math/matrix2.d.ts.map +0 -1
- package/dist/math/matrix2.js +0 -178
- package/dist/math/matrix2.js.map +0 -1
- package/dist/math/matrix3.d.ts +0 -92
- package/dist/math/matrix3.d.ts.map +0 -1
- package/dist/math/matrix3.js +0 -255
- package/dist/math/matrix3.js.map +0 -1
- package/dist/math/matrix4.d.ts +0 -138
- package/dist/math/matrix4.d.ts.map +0 -1
- package/dist/math/matrix4.js +0 -352
- package/dist/math/matrix4.js.map +0 -1
- package/dist/math/vector2.d.ts +0 -38
- package/dist/math/vector2.d.ts.map +0 -1
- package/dist/math/vector2.js +0 -67
- package/dist/math/vector2.js.map +0 -1
- package/dist/math/vector3.d.ts +0 -34
- package/dist/math/vector3.d.ts.map +0 -1
- package/dist/math/vector3.js +0 -74
- package/dist/math/vector3.js.map +0 -1
- package/dist/math/vector4.d.ts +0 -39
- package/dist/math/vector4.d.ts.map +0 -1
- package/dist/math/vector4.js +0 -81
- package/dist/math/vector4.js.map +0 -1
- package/dist/util/types.d.ts +0 -2
- package/dist/util/types.d.ts.map +0 -1
- package/dist/util/types.js +0 -2
- package/dist/util/types.js.map +0 -1
- package/dist/util/version.d.ts.map +0 -1
- package/dist/util/version.js.map +0 -1
- /package/dist/{core/event.d.ts → event.d.ts} +0 -0
- /package/dist/{core/event.js → event.js} +0 -0
- /package/dist/{core/scene.js → scene.js} +0 -0
- /package/dist/{util/version.d.ts → version.d.ts} +0 -0
- /package/dist/{util/version.js → version.js} +0 -0
package/dist/matrix4.js
ADDED
|
@@ -0,0 +1,465 @@
|
|
|
1
|
+
import { Vector4 } from "./vector4.js";
|
|
2
|
+
import { add, sub, mul, div, mod } from "./el.js";
|
|
3
|
+
export const Matrix4 = {
|
|
4
|
+
/** Constant index for the xx-component of a Matrix4 */
|
|
5
|
+
XX: 0,
|
|
6
|
+
/** Constant index for the xy-component of a Matrix4 */
|
|
7
|
+
XY: 1,
|
|
8
|
+
/** Constant index for the xz-component of a Matrix4 */
|
|
9
|
+
XZ: 2,
|
|
10
|
+
/** Constant index for the xw-component of a Matrix4 */
|
|
11
|
+
XW: 3,
|
|
12
|
+
/** Constant index for the yx-component of a Matrix4 */
|
|
13
|
+
YX: 4,
|
|
14
|
+
/** Constant index for the yy-component of a Matrix4 */
|
|
15
|
+
YY: 5,
|
|
16
|
+
/** Constant index for the yz-component of a Matrix4 */
|
|
17
|
+
YZ: 6,
|
|
18
|
+
/** Constant index for the yw-component of a Matrix4 */
|
|
19
|
+
YW: 7,
|
|
20
|
+
/** Constant index for the zx-component of a Matrix4 */
|
|
21
|
+
ZX: 8,
|
|
22
|
+
/** Constant index for the zy-component of a Matrix4 */
|
|
23
|
+
ZY: 9,
|
|
24
|
+
/** Constant index for the zz-component of a Matrix4 */
|
|
25
|
+
ZZ: 10,
|
|
26
|
+
/** Constant index for the zw-component of a Matrix4 */
|
|
27
|
+
ZW: 11,
|
|
28
|
+
/** Constant index for the wx-component of a Matrix4 */
|
|
29
|
+
WX: 12,
|
|
30
|
+
/** Constant index for the wy-component of a Matrix4 */
|
|
31
|
+
WY: 13,
|
|
32
|
+
/** Constant index for the wz-component of a Matrix4 */
|
|
33
|
+
WZ: 14,
|
|
34
|
+
/** Constant index for the ww-component of a Matrix4 */
|
|
35
|
+
WW: 15,
|
|
36
|
+
/** A collection of getters for Matrix4 objects */
|
|
37
|
+
Get: {
|
|
38
|
+
/** Get the xx-component of a Matrix4 */
|
|
39
|
+
xx(a) { return a[Matrix4.XX]; },
|
|
40
|
+
/** Get the xy-component of a Matrix4 */
|
|
41
|
+
xy(a) { return a[Matrix4.XY]; },
|
|
42
|
+
/** Get the xz-component of a Matrix4 */
|
|
43
|
+
xz(a) { return a[Matrix4.XZ]; },
|
|
44
|
+
/** Get the xw-component of a Matrix4 */
|
|
45
|
+
xw(a) { return a[Matrix4.XW]; },
|
|
46
|
+
/** Get the yx-component of a Matrix4 */
|
|
47
|
+
yx(a) { return a[Matrix4.YX]; },
|
|
48
|
+
/** Get the yy-component of a Matrix4 */
|
|
49
|
+
yy(a) { return a[Matrix4.YY]; },
|
|
50
|
+
/** Get the yz-component of a Matrix4 */
|
|
51
|
+
yz(a) { return a[Matrix4.YZ]; },
|
|
52
|
+
/** Get the yw-component of a Matrix4 */
|
|
53
|
+
yw(a) { return a[Matrix4.YW]; },
|
|
54
|
+
/** Get the zx-component of a Matrix4 */
|
|
55
|
+
zx(a) { return a[Matrix4.ZX]; },
|
|
56
|
+
/** Get the zy-component of a Matrix4 */
|
|
57
|
+
zy(a) { return a[Matrix4.ZY]; },
|
|
58
|
+
/** Get the zz-component of a Matrix4 */
|
|
59
|
+
zz(a) { return a[Matrix4.ZZ]; },
|
|
60
|
+
/** Get the zw-component of a Matrix4 */
|
|
61
|
+
zw(a) { return a[Matrix4.ZW]; },
|
|
62
|
+
/** Get the wx-component of a Matrix4 */
|
|
63
|
+
wx(a) { return a[Matrix4.WX]; },
|
|
64
|
+
/** Get the wy-component of a Matrix4 */
|
|
65
|
+
wy(a) { return a[Matrix4.WY]; },
|
|
66
|
+
/** Get the wz-component of a Matrix4 */
|
|
67
|
+
wz(a) { return a[Matrix4.WZ]; },
|
|
68
|
+
/** Get the ww-component of a Matrix4 */
|
|
69
|
+
ww(a) { return a[Matrix4.WW]; },
|
|
70
|
+
/** Get the 0th row of a Matrix4 as a Vector4 */
|
|
71
|
+
r0(a) {
|
|
72
|
+
return [
|
|
73
|
+
a[Matrix4.XX],
|
|
74
|
+
a[Matrix4.XY],
|
|
75
|
+
a[Matrix4.XZ],
|
|
76
|
+
a[Matrix4.XW]
|
|
77
|
+
];
|
|
78
|
+
},
|
|
79
|
+
/** Get the 1st row of a Matrix4 as a Vector4 */
|
|
80
|
+
r1(a) {
|
|
81
|
+
return [
|
|
82
|
+
a[Matrix4.YX],
|
|
83
|
+
a[Matrix4.YY],
|
|
84
|
+
a[Matrix4.YZ],
|
|
85
|
+
a[Matrix4.YW]
|
|
86
|
+
];
|
|
87
|
+
},
|
|
88
|
+
/** Get the 2nd row of a Matrix4 as a Vector4 */
|
|
89
|
+
r2(a) {
|
|
90
|
+
return [
|
|
91
|
+
a[Matrix4.ZX],
|
|
92
|
+
a[Matrix4.ZY],
|
|
93
|
+
a[Matrix4.ZZ],
|
|
94
|
+
a[Matrix4.ZW]
|
|
95
|
+
];
|
|
96
|
+
},
|
|
97
|
+
/** Get the 3rd row of a Matrix4 as a Vector4 */
|
|
98
|
+
r3(a) {
|
|
99
|
+
return [
|
|
100
|
+
a[Matrix4.WX],
|
|
101
|
+
a[Matrix4.WY],
|
|
102
|
+
a[Matrix4.WZ],
|
|
103
|
+
a[Matrix4.WW]
|
|
104
|
+
];
|
|
105
|
+
},
|
|
106
|
+
/** Get the i-th row of a Matrix4 as a Vector4 */
|
|
107
|
+
row(a, i) {
|
|
108
|
+
switch (i) {
|
|
109
|
+
case 0: return Matrix4.Get.r0(a);
|
|
110
|
+
case 1: return Matrix4.Get.r1(a);
|
|
111
|
+
case 2: return Matrix4.Get.r2(a);
|
|
112
|
+
case 3: return Matrix4.Get.r3(a);
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
/** Get the 0th column of a Matrix4 as a Vector4 */
|
|
116
|
+
c0(a) {
|
|
117
|
+
return [
|
|
118
|
+
a[Matrix4.XX],
|
|
119
|
+
a[Matrix4.YX],
|
|
120
|
+
a[Matrix4.ZX],
|
|
121
|
+
a[Matrix4.WX]
|
|
122
|
+
];
|
|
123
|
+
},
|
|
124
|
+
/** Get the 1st column of a Matrix4 as a Vector4 */
|
|
125
|
+
c1(a) {
|
|
126
|
+
return [
|
|
127
|
+
a[Matrix4.XY],
|
|
128
|
+
a[Matrix4.YY],
|
|
129
|
+
a[Matrix4.ZY],
|
|
130
|
+
a[Matrix4.WY]
|
|
131
|
+
];
|
|
132
|
+
},
|
|
133
|
+
/** Get the 2nd column of a Matrix4 as a Vector4 */
|
|
134
|
+
c2(a) {
|
|
135
|
+
return [
|
|
136
|
+
a[Matrix4.XZ],
|
|
137
|
+
a[Matrix4.YZ],
|
|
138
|
+
a[Matrix4.ZZ],
|
|
139
|
+
a[Matrix4.WZ]
|
|
140
|
+
];
|
|
141
|
+
},
|
|
142
|
+
/** Get the 3rd column of a Matrix4 as a Vector4 */
|
|
143
|
+
c3(a) {
|
|
144
|
+
return [
|
|
145
|
+
a[Matrix4.XW],
|
|
146
|
+
a[Matrix4.YW],
|
|
147
|
+
a[Matrix4.ZW],
|
|
148
|
+
a[Matrix4.WW]
|
|
149
|
+
];
|
|
150
|
+
},
|
|
151
|
+
/** Get the j-th column of a Matrix4 as a Vector4 */
|
|
152
|
+
col(a, j) {
|
|
153
|
+
switch (j) {
|
|
154
|
+
case 0: return Matrix4.Get.c0(a);
|
|
155
|
+
case 1: return Matrix4.Get.c1(a);
|
|
156
|
+
case 2: return Matrix4.Get.c2(a);
|
|
157
|
+
case 3: return Matrix4.Get.c3(a);
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
},
|
|
161
|
+
/** A collection of setters for Matrix4 objects */
|
|
162
|
+
Set: {
|
|
163
|
+
/** Set the xx-component of a Matrix4 */
|
|
164
|
+
xx(a, xx) { return a[Matrix4.XX] = xx; },
|
|
165
|
+
/** Set the xy-component of a Matrix4 */
|
|
166
|
+
xy(a, xy) { return a[Matrix4.XY] = xy; },
|
|
167
|
+
/** Set the xz-component of a Matrix4 */
|
|
168
|
+
xz(a, xz) { return a[Matrix4.XZ] = xz; },
|
|
169
|
+
/** Set the xw-component of a Matrix4 */
|
|
170
|
+
xw(a, xw) { return a[Matrix4.XW] = xw; },
|
|
171
|
+
/** Set the yx-component of a Matrix4 */
|
|
172
|
+
yx(a, yx) { return a[Matrix4.YX] = yx; },
|
|
173
|
+
/** Set the yy-component of a Matrix4 */
|
|
174
|
+
yy(a, yy) { return a[Matrix4.YY] = yy; },
|
|
175
|
+
/** Set the yz-component of a Matrix4 */
|
|
176
|
+
yz(a, yz) { return a[Matrix4.YZ] = yz; },
|
|
177
|
+
/** Set the yw-component of a Matrix4 */
|
|
178
|
+
yw(a, yw) { return a[Matrix4.YW] = yw; },
|
|
179
|
+
/** Set the zx-component of a Matrix4 */
|
|
180
|
+
zx(a, zx) { return a[Matrix4.ZX] = zx; },
|
|
181
|
+
/** Set the zy-component of a Matrix4 */
|
|
182
|
+
zy(a, zy) { return a[Matrix4.ZY] = zy; },
|
|
183
|
+
/** Set the zz-component of a Matrix4 */
|
|
184
|
+
zz(a, zz) { return a[Matrix4.ZZ] = zz; },
|
|
185
|
+
/** Set the zw-component of a Matrix4 */
|
|
186
|
+
zw(a, zw) { return a[Matrix4.ZW] = zw; },
|
|
187
|
+
/** Set the wx-component of a Matrix4 */
|
|
188
|
+
wx(a, wx) { return a[Matrix4.WX] = wx; },
|
|
189
|
+
/** Set the wy-component of a Matrix4 */
|
|
190
|
+
wy(a, wy) { return a[Matrix4.WY] = wy; },
|
|
191
|
+
/** Set the wz-component of a Matrix4 */
|
|
192
|
+
wz(a, wz) { return a[Matrix4.WZ] = wz; },
|
|
193
|
+
/** Set the ww-component of a Matrix4 */
|
|
194
|
+
ww(a, ww) { return a[Matrix4.WW] = ww; },
|
|
195
|
+
/** Set the 0th row of a Matrix4 */
|
|
196
|
+
r0(a, [xx, xy, xz, xw]) {
|
|
197
|
+
a[Matrix4.XX] = xx;
|
|
198
|
+
a[Matrix4.XY] = xy;
|
|
199
|
+
a[Matrix4.XZ] = xz;
|
|
200
|
+
a[Matrix4.XW] = xw;
|
|
201
|
+
return [xx, xy, xz, xw];
|
|
202
|
+
},
|
|
203
|
+
/** Set the 1st row of a Matrix4 */
|
|
204
|
+
r1(a, [yx, yy, yz, yw]) {
|
|
205
|
+
a[Matrix4.YX] = yx;
|
|
206
|
+
a[Matrix4.YY] = yy;
|
|
207
|
+
a[Matrix4.YZ] = yz;
|
|
208
|
+
a[Matrix4.YW] = yw;
|
|
209
|
+
return [yx, yy, yz, yw];
|
|
210
|
+
},
|
|
211
|
+
/** Set the 2nd row of a Matrix4 */
|
|
212
|
+
r2(a, [zx, zy, zz, zw]) {
|
|
213
|
+
a[Matrix4.ZX] = zx;
|
|
214
|
+
a[Matrix4.ZY] = zy;
|
|
215
|
+
a[Matrix4.ZZ] = zz;
|
|
216
|
+
a[Matrix4.ZW] = zw;
|
|
217
|
+
return [zx, zy, zz, zw];
|
|
218
|
+
},
|
|
219
|
+
/** Set the 3rd row of a Matrix4 */
|
|
220
|
+
r3(a, [wx, wy, wz, ww]) {
|
|
221
|
+
a[Matrix4.WX] = wx;
|
|
222
|
+
a[Matrix4.WY] = wy;
|
|
223
|
+
a[Matrix4.WZ] = wz;
|
|
224
|
+
a[Matrix4.WW] = ww;
|
|
225
|
+
return [wx, wy, wz, ww];
|
|
226
|
+
},
|
|
227
|
+
/** Set the i-th row of a Matrix4 */
|
|
228
|
+
row(a, i, ri) {
|
|
229
|
+
switch (i) {
|
|
230
|
+
case 0: return Matrix4.Set.r0(a, ri);
|
|
231
|
+
case 1: return Matrix4.Set.r1(a, ri);
|
|
232
|
+
case 2: return Matrix4.Set.r2(a, ri);
|
|
233
|
+
case 3: return Matrix4.Set.r3(a, ri);
|
|
234
|
+
}
|
|
235
|
+
},
|
|
236
|
+
/** Set the 0th column of a Matrix4 */
|
|
237
|
+
c0(a, [xx, yx, zx, wx]) {
|
|
238
|
+
a[Matrix4.XX] = xx;
|
|
239
|
+
a[Matrix4.YX] = yx;
|
|
240
|
+
a[Matrix4.ZX] = zx;
|
|
241
|
+
a[Matrix4.WX] = wx;
|
|
242
|
+
return [xx, yx, zx, wx];
|
|
243
|
+
},
|
|
244
|
+
/** Set the 1st column of a Matrix4 */
|
|
245
|
+
c1(a, [xy, yy, zy, wy]) {
|
|
246
|
+
a[Matrix4.XY] = xy;
|
|
247
|
+
a[Matrix4.YY] = yy;
|
|
248
|
+
a[Matrix4.ZY] = zy;
|
|
249
|
+
a[Matrix4.WY] = wy;
|
|
250
|
+
return [xy, yy, zy, wy];
|
|
251
|
+
},
|
|
252
|
+
/** Set the 2nd column of a Matrix4 */
|
|
253
|
+
c2(a, [xz, yz, zz, wz]) {
|
|
254
|
+
a[Matrix4.XZ] = xz;
|
|
255
|
+
a[Matrix4.YZ] = yz;
|
|
256
|
+
a[Matrix4.ZZ] = zz;
|
|
257
|
+
a[Matrix4.WZ] = wz;
|
|
258
|
+
return [xz, yz, zz, wz];
|
|
259
|
+
},
|
|
260
|
+
/** Set the 3rd column of a Matrix4 */
|
|
261
|
+
c3(a, [xw, yw, zw, ww]) {
|
|
262
|
+
a[Matrix4.XW] = xw;
|
|
263
|
+
a[Matrix4.YW] = yw;
|
|
264
|
+
a[Matrix4.ZW] = zw;
|
|
265
|
+
a[Matrix4.WW] = ww;
|
|
266
|
+
return [xw, yw, zw, ww];
|
|
267
|
+
},
|
|
268
|
+
/** Set the j-th column of a Matrix4 */
|
|
269
|
+
col(a, j, cj) {
|
|
270
|
+
switch (j) {
|
|
271
|
+
case 0: return Matrix4.Set.c0(a, cj);
|
|
272
|
+
case 1: return Matrix4.Set.c1(a, cj);
|
|
273
|
+
case 2: return Matrix4.Set.c2(a, cj);
|
|
274
|
+
case 3: return Matrix4.Set.c3(a, cj);
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
},
|
|
278
|
+
/** Construct an identity Matrix4 with an optional scale factor */
|
|
279
|
+
id(a = 1) {
|
|
280
|
+
return [
|
|
281
|
+
a, 0, 0, 0,
|
|
282
|
+
0, a, 0, 0,
|
|
283
|
+
0, 0, a, 0,
|
|
284
|
+
0, 0, 0, a
|
|
285
|
+
];
|
|
286
|
+
},
|
|
287
|
+
/**
|
|
288
|
+
* Construct a Matrix4 from a variadic array of numbers.
|
|
289
|
+
*
|
|
290
|
+
* Constructs a uniform Matrix4 when `a.length === 1`
|
|
291
|
+
* ```js
|
|
292
|
+
* Matrix4.new(1) // [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
|
|
293
|
+
* ```
|
|
294
|
+
*
|
|
295
|
+
* Otherwise constructs a standard zero-padded row-major Matrix4
|
|
296
|
+
* ```js
|
|
297
|
+
* Matrix4.new( ) // [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
|
298
|
+
* Matrix4.new(1, 2 ) // [1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
|
299
|
+
* Matrix4.new(1, 2, 3, 4) // [1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
|
300
|
+
* ```
|
|
301
|
+
*/
|
|
302
|
+
new(...a) {
|
|
303
|
+
if (a.length === 1)
|
|
304
|
+
return [
|
|
305
|
+
a[Matrix4.XX], a[Matrix4.XX], a[Matrix4.XX], a[Matrix4.XX],
|
|
306
|
+
a[Matrix4.XX], a[Matrix4.XX], a[Matrix4.XX], a[Matrix4.XX],
|
|
307
|
+
a[Matrix4.XX], a[Matrix4.XX], a[Matrix4.XX], a[Matrix4.XX],
|
|
308
|
+
a[Matrix4.XX], a[Matrix4.XX], a[Matrix4.XX], a[Matrix4.XX]
|
|
309
|
+
];
|
|
310
|
+
else
|
|
311
|
+
return [
|
|
312
|
+
a[Matrix4.XX] ?? 0, a[Matrix4.XY] ?? 0, a[Matrix4.XZ] ?? 0, a[Matrix4.XW] ?? 0,
|
|
313
|
+
a[Matrix4.YX] ?? 0, a[Matrix4.YY] ?? 0, a[Matrix4.YZ] ?? 0, a[Matrix4.YW] ?? 0,
|
|
314
|
+
a[Matrix4.ZX] ?? 0, a[Matrix4.ZY] ?? 0, a[Matrix4.ZZ] ?? 0, a[Matrix4.ZW] ?? 0,
|
|
315
|
+
a[Matrix4.WX] ?? 0, a[Matrix4.WY] ?? 0, a[Matrix4.WZ] ?? 0, a[Matrix4.WW] ?? 0
|
|
316
|
+
];
|
|
317
|
+
},
|
|
318
|
+
/**
|
|
319
|
+
* Constructs a Matrix4 from a number or an array of numbers.
|
|
320
|
+
*
|
|
321
|
+
* Constructs a uniform Matrix4 when `a` is a number
|
|
322
|
+
* ```js
|
|
323
|
+
* Matrix4.from(1) // [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
|
|
324
|
+
* ```
|
|
325
|
+
*
|
|
326
|
+
* Otherwise constructs a standard zero-padded Matrix4
|
|
327
|
+
* ```js
|
|
328
|
+
* Matrix4.from([ ]) // [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
|
329
|
+
* Matrix4.from([1 ]) // [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
|
330
|
+
* Matrix4.from([1, 2 ]) // [1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
|
331
|
+
* Matrix4.from([1, 2, 3, 4]) // [1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
|
332
|
+
* ```
|
|
333
|
+
*/
|
|
334
|
+
from(a) {
|
|
335
|
+
if (typeof a === "number")
|
|
336
|
+
return [
|
|
337
|
+
a, a, a, a,
|
|
338
|
+
a, a, a, a,
|
|
339
|
+
a, a, a, a,
|
|
340
|
+
a, a, a, a
|
|
341
|
+
];
|
|
342
|
+
else
|
|
343
|
+
return [
|
|
344
|
+
a[Matrix4.XX] ?? 0, a[Matrix4.XY] ?? 0, a[Matrix4.XZ] ?? 0, a[Matrix4.XW] ?? 0,
|
|
345
|
+
a[Matrix4.YX] ?? 0, a[Matrix4.YY] ?? 0, a[Matrix4.YZ] ?? 0, a[Matrix4.YW] ?? 0,
|
|
346
|
+
a[Matrix4.ZX] ?? 0, a[Matrix4.ZY] ?? 0, a[Matrix4.ZZ] ?? 0, a[Matrix4.ZW] ?? 0,
|
|
347
|
+
a[Matrix4.WX] ?? 0, a[Matrix4.WY] ?? 0, a[Matrix4.WZ] ?? 0, a[Matrix4.WW] ?? 0
|
|
348
|
+
];
|
|
349
|
+
},
|
|
350
|
+
/**
|
|
351
|
+
* Perform an element-wise operation on two Matrix4 objects.
|
|
352
|
+
* Number-like arguments are promoted to uniform Matrix4 objects
|
|
353
|
+
* before performing the operation. Constructs a new Matrix4 when an
|
|
354
|
+
* output argument is not provided.
|
|
355
|
+
*/
|
|
356
|
+
el(op, a, b, out = Matrix4.new()) {
|
|
357
|
+
const [xxa, xya, xza, xwa, yxa, yya, yza, ywa, zxa, zya, zza, zwa, wxa, wya, wza, wwa] = Matrix4.from(a);
|
|
358
|
+
const [xxb, xyb, xzb, xwb, yxb, yyb, yzb, ywb, zxb, zyb, zzb, zwb, wxb, wyb, wzb, wwb] = Matrix4.from(b);
|
|
359
|
+
Matrix4.Set.xx(out, op(xxa, xxb));
|
|
360
|
+
Matrix4.Set.xy(out, op(xya, xyb));
|
|
361
|
+
Matrix4.Set.xz(out, op(xza, xzb));
|
|
362
|
+
Matrix4.Set.xw(out, op(xwa, xwb));
|
|
363
|
+
Matrix4.Set.yx(out, op(yxa, yxb));
|
|
364
|
+
Matrix4.Set.yy(out, op(yya, yyb));
|
|
365
|
+
Matrix4.Set.yz(out, op(yza, yzb));
|
|
366
|
+
Matrix4.Set.yw(out, op(ywa, ywb));
|
|
367
|
+
Matrix4.Set.zx(out, op(zxa, zxb));
|
|
368
|
+
Matrix4.Set.zy(out, op(zya, zyb));
|
|
369
|
+
Matrix4.Set.zz(out, op(zza, zzb));
|
|
370
|
+
Matrix4.Set.zw(out, op(zwa, zwb));
|
|
371
|
+
Matrix4.Set.wx(out, op(wxa, wxb));
|
|
372
|
+
Matrix4.Set.wy(out, op(wya, wyb));
|
|
373
|
+
Matrix4.Set.wz(out, op(wza, wzb));
|
|
374
|
+
Matrix4.Set.ww(out, op(wwa, wwb));
|
|
375
|
+
return out;
|
|
376
|
+
},
|
|
377
|
+
/**
|
|
378
|
+
* Compute the sum of two Matrix4 objects. Number-like arguments are
|
|
379
|
+
* promoted to uniform Matrix4 objects before performing the operation.
|
|
380
|
+
* Constructs a new Matrix4 when an output argument is not provided.
|
|
381
|
+
*/
|
|
382
|
+
add(a, b, out = Matrix4.new()) {
|
|
383
|
+
return Matrix4.el(add, a, b, out);
|
|
384
|
+
},
|
|
385
|
+
/**
|
|
386
|
+
* Compute the difference of two Matrix4 objects. Number-like arguments
|
|
387
|
+
* are promoted to uniform Matrix4 objects before performing the
|
|
388
|
+
* operation. Constructs a new Matrix4 when an output argument is not
|
|
389
|
+
* provided.
|
|
390
|
+
*/
|
|
391
|
+
sub(a, b, out = Matrix4.new()) {
|
|
392
|
+
return Matrix4.el(sub, a, b, out);
|
|
393
|
+
},
|
|
394
|
+
/**
|
|
395
|
+
* Compute the hadamard (element-wise) product of two Matrix4 objects.
|
|
396
|
+
* Number-like arguments are promoted to uniform Matrix4 objects before
|
|
397
|
+
* performing the operation. Constructs a new Matrix4 when an output
|
|
398
|
+
* argument is not provided.
|
|
399
|
+
*/
|
|
400
|
+
hmul(a, b, out = Matrix4.new()) {
|
|
401
|
+
return Matrix4.el(mul, a, b, out);
|
|
402
|
+
},
|
|
403
|
+
/**
|
|
404
|
+
* Compute the hadamard (element-wise) quotient of two Matrix4 objects.
|
|
405
|
+
* Number-like arguments are promoted to uniform Matrix4 objects before
|
|
406
|
+
* performing the operation. Constructs a new Matrix4 when an output
|
|
407
|
+
* argument is not provided.
|
|
408
|
+
*/
|
|
409
|
+
hdiv(a, b, out = Matrix4.new()) {
|
|
410
|
+
return Matrix4.el(div, a, b, out);
|
|
411
|
+
},
|
|
412
|
+
/**
|
|
413
|
+
* Compute the hadamard (element-wise) remainder of two Matrix4 objects.
|
|
414
|
+
* Number-like arguments are promoted to uniform Matrix4 objects before
|
|
415
|
+
* performing the operation. Constructs a new Matrix4 when an output
|
|
416
|
+
* argument is not provided.
|
|
417
|
+
*/
|
|
418
|
+
hmod(a, b, out = Matrix4.new()) {
|
|
419
|
+
return Matrix4.el(mod, a, b, out);
|
|
420
|
+
},
|
|
421
|
+
/**
|
|
422
|
+
* Compute the standard product of two Matrix4 objects. Number-like arguments are
|
|
423
|
+
* promoted to uniform Matrix4 objects before performing the operation.
|
|
424
|
+
* Constructs a new Matrix4 when an output argument is not provided.
|
|
425
|
+
*/
|
|
426
|
+
mul(a, b, out = Matrix4.new()) {
|
|
427
|
+
const A = Matrix4.from(a);
|
|
428
|
+
const B = Matrix4.from(b);
|
|
429
|
+
const r0 = Matrix4.Get.r0(A);
|
|
430
|
+
const r1 = Matrix4.Get.r1(A);
|
|
431
|
+
const r2 = Matrix4.Get.r2(A);
|
|
432
|
+
const r3 = Matrix4.Get.r3(A);
|
|
433
|
+
const c0 = Matrix4.Get.c0(B);
|
|
434
|
+
const c1 = Matrix4.Get.c1(B);
|
|
435
|
+
const c2 = Matrix4.Get.c2(B);
|
|
436
|
+
const c3 = Matrix4.Get.c3(B);
|
|
437
|
+
Matrix4.Set.xx(out, Vector4.dot(r0, c0));
|
|
438
|
+
Matrix4.Set.xy(out, Vector4.dot(r0, c1));
|
|
439
|
+
Matrix4.Set.xz(out, Vector4.dot(r0, c2));
|
|
440
|
+
Matrix4.Set.xw(out, Vector4.dot(r0, c3));
|
|
441
|
+
Matrix4.Set.yx(out, Vector4.dot(r1, c0));
|
|
442
|
+
Matrix4.Set.yy(out, Vector4.dot(r1, c1));
|
|
443
|
+
Matrix4.Set.yz(out, Vector4.dot(r1, c2));
|
|
444
|
+
Matrix4.Set.yw(out, Vector4.dot(r1, c3));
|
|
445
|
+
Matrix4.Set.zx(out, Vector4.dot(r2, c0));
|
|
446
|
+
Matrix4.Set.zy(out, Vector4.dot(r2, c1));
|
|
447
|
+
Matrix4.Set.zz(out, Vector4.dot(r2, c2));
|
|
448
|
+
Matrix4.Set.zw(out, Vector4.dot(r2, c3));
|
|
449
|
+
Matrix4.Set.wx(out, Vector4.dot(r3, c0));
|
|
450
|
+
Matrix4.Set.wy(out, Vector4.dot(r3, c1));
|
|
451
|
+
Matrix4.Set.wz(out, Vector4.dot(r3, c2));
|
|
452
|
+
Matrix4.Set.ww(out, Vector4.dot(r3, c3));
|
|
453
|
+
return out;
|
|
454
|
+
},
|
|
455
|
+
/**
|
|
456
|
+
* Convert a Matrix4 into its string representation.
|
|
457
|
+
* ```js
|
|
458
|
+
* Matrix4.toString([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]) // "mat4<1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16>"
|
|
459
|
+
* ```
|
|
460
|
+
*/
|
|
461
|
+
toString([xx, xy, xz, xw, yx, yy, yz, yw, zx, zy, zz, zw, wx, wy, wz, ww]) {
|
|
462
|
+
return `mat4<${xx}, ${xy}, ${xz}, ${xw}, ${yx}, ${yy}, ${yz}, ${yw}, ${zx}, ${zy}, ${zz}, ${zw}, ${wx}, ${wy}, ${wz}, ${ww}>`;
|
|
463
|
+
}
|
|
464
|
+
};
|
|
465
|
+
//# sourceMappingURL=matrix4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matrix4.js","sourceRoot":"","sources":["../src/matrix4.ts"],"names":[],"mappings":"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,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1G,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QACjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QACjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QACjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QACjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QACjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QACjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QACjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QACjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QACjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QACjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QACjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QACjC,OAAO,C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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { Maybe } from "../util/types.js";
|
|
2
1
|
import type { Stage } from "./stage.js";
|
|
3
2
|
export type Scene = {
|
|
4
3
|
doUpdate?: boolean;
|
|
@@ -28,7 +27,7 @@ export declare namespace Scene {
|
|
|
28
27
|
};
|
|
29
28
|
}
|
|
30
29
|
export declare const Scene: {
|
|
31
|
-
doesUpdate(a:
|
|
32
|
-
doesRender(a:
|
|
30
|
+
doesUpdate(a: Scene | undefined): a is Scene.DoesUpdate;
|
|
31
|
+
doesRender(a: Scene | undefined): a is Scene.Renderable;
|
|
33
32
|
};
|
|
34
33
|
//# sourceMappingURL=scene.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../src/scene.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvC,MAAM,MAAM,KAAK,GAAG;IAClB,QAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAS,CAAC,EAAE,OAAO,CAAA;IAEnB,QAAS,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAClC,QAAS,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAClC,QAAS,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAA;IAClD,QAAS,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAA;CACnD,CAAA;AAED,yBAAiB,KAAK,CAAC;IACrB,KAAY,aAAa,GAAG;QAC1B,KAAK,EAAE,KAAK,CAAA;QACZ,CAAC,EAAG,MAAM,CAAA;QACV,EAAE,EAAE,MAAM,CAAA;KACX,CAAA;IAED,KAAY,aAAa,GAAG;QAC1B,KAAK,EAAE,KAAK,CAAA;QACZ,CAAC,EAAG,MAAM,CAAA;QACV,EAAE,EAAE,MAAM,CAAA;QACV,CAAC,EAAG,iCAAiC,CAAA;KACtC,CAAA;IAED,KAAY,UAAU,GAAG;QACvB,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAA;KACvC,CAAA;IAED,KAAY,UAAU,GAAG;QACvB,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAA;KACvC,CAAA;CACF;AAED,eAAO,MAAM,KAAK;kBACF,KAAK,GAAG,SAAS,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU;kBAIzC,KAAK,GAAG,SAAS,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU;CAGxD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene.js","sourceRoot":"","sources":["../src/scene.ts"],"names":[],"mappings":"AAmCA,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,UAAU,CAAC,CAAoB;QAC7B,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAA;IACpD,CAAC;IAED,UAAU,CAAC,CAAoB;QAC7B,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAA;IACpD,CAAC;CACF,CAAA"}
|
package/dist/sprite.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Scene } from "./scene.js";
|
|
2
|
+
export type Sprite = {
|
|
3
|
+
frames: Array<Sprite.Frame>;
|
|
4
|
+
atlas: HTMLImageElement;
|
|
5
|
+
state: number;
|
|
6
|
+
speed: number;
|
|
7
|
+
frame: number;
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
w: number;
|
|
11
|
+
h: number;
|
|
12
|
+
};
|
|
13
|
+
export declare namespace Sprite {
|
|
14
|
+
type Frame = {
|
|
15
|
+
sx: number;
|
|
16
|
+
sy: number;
|
|
17
|
+
sw: number;
|
|
18
|
+
sh: number;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export declare const Sprite: {
|
|
22
|
+
draw(context: Scene.RenderContext, sprite: Sprite): void;
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=sprite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sprite.d.ts","sourceRoot":"","sources":["../src/sprite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAQvC,MAAM,MAAM,MAAM,GAAG;IACnB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC3B,KAAK,EAAG,gBAAgB,CAAA;IACxB,KAAK,EAAG,MAAM,CAAC;IACf,KAAK,EAAG,MAAM,CAAC;IACf,KAAK,EAAG,MAAM,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;IACpB,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAGD,yBAAiB,MAAM,CAAC;IACtB,KAAY,KAAK,GAAG;QAClB,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QACvB,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;KACxB,CAAA;CACF;AAMD,eAAO,MAAM,MAAM;kBACH,KAAK,CAAC,aAAa,UAAU,MAAM;CAkDlD,CAAA"}
|
package/dist/sprite.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
const PLAYING = 1; // play once
|
|
2
|
+
const STOPPED = 0;
|
|
3
|
+
const LOOPING = -1;
|
|
4
|
+
function wrap(n, m) {
|
|
5
|
+
return (n % m + m) % m;
|
|
6
|
+
}
|
|
7
|
+
export const Sprite = {
|
|
8
|
+
draw(context, sprite) {
|
|
9
|
+
// if sprite is not stopped
|
|
10
|
+
if (sprite.state !== 0) {
|
|
11
|
+
// advance sprite frame
|
|
12
|
+
sprite.frame += sprite.speed * context.dt;
|
|
13
|
+
// if stepping forward
|
|
14
|
+
if (sprite.speed >= 0) {
|
|
15
|
+
// positive integer quotient (number of times frame has cross the frame boundary)
|
|
16
|
+
const loops = Math.floor(sprite.frame / sprite.frames.length);
|
|
17
|
+
// if sprite state is > 0 decrement but don't go below 0, else vanilla decrement
|
|
18
|
+
if (sprite.state > 0)
|
|
19
|
+
sprite.state = Math.max(sprite.state - loops, 0);
|
|
20
|
+
else
|
|
21
|
+
sprite.state = (sprite.state - loops);
|
|
22
|
+
// if sprite state is 0 then set frame to end, else wrap frame
|
|
23
|
+
if (sprite.state === 0)
|
|
24
|
+
sprite.frame = sprite.frames.length - 1;
|
|
25
|
+
else
|
|
26
|
+
sprite.frame = wrap(sprite.frame, sprite.frames.length);
|
|
27
|
+
// if stepping backward
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
// negative integer quotient (number of times frame has cross the frame boundary)
|
|
31
|
+
const loops = Math.floor(sprite.frame / sprite.frames.length) - 1;
|
|
32
|
+
// if sprite state is < 0 decrement but don't go above 0, else vanilla decrement
|
|
33
|
+
if (sprite.state > 0)
|
|
34
|
+
sprite.state = Math.min(sprite.state + loops, 0);
|
|
35
|
+
else
|
|
36
|
+
sprite.state = (sprite.state + loops);
|
|
37
|
+
// if sprite state is 0 then set frame to start, else wrap frame
|
|
38
|
+
if (sprite.state === 0)
|
|
39
|
+
sprite.frame = 0;
|
|
40
|
+
else
|
|
41
|
+
sprite.frame = wrap(sprite.frame, sprite.frames.length);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// draw the sprite frame
|
|
45
|
+
const frame = sprite.frames[Math.floor(sprite.frame)];
|
|
46
|
+
context.g.drawImage(sprite.atlas, frame.sx, frame.sy, frame.sw, frame.sh, sprite.x, sprite.y, sprite.w, sprite.h);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=sprite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sprite.js","sourceRoot":"","sources":["../src/sprite.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,GAAI,CAAC,CAAA,CAAC,YAAY;AAC/B,MAAM,OAAO,GAAI,CAAC,CAAA;AAClB,MAAM,OAAO,GAAG,CAAC,CAAC,CAAA;AAqBlB,SAAS,IAAI,CAAC,CAAS,EAAE,CAAS;IAChC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;AACxB,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,CAAC,OAA4B,EAAE,MAAc;QAC/C,2BAA2B;QAC3B,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACvB,uBAAuB;YACvB,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,EAAE,CAAA;YAEzC,sBAAsB;YACtB,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;gBACtB,iFAAiF;gBACjF,MAAM,KAAK,GAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;gBAE9D,gFAAgF;gBAChF,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC;oBAClB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAA;;oBAEhD,MAAM,CAAC,KAAK,GAAW,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAI,CAAA;gBAElD,8DAA8D;gBAC9D,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC;oBACpB,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;;oBAEvC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;gBAE3D,uBAAuB;YACvB,CAAC;iBAAsB,CAAC;gBACtB,iFAAiF;gBACjF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAEjE,gFAAgF;gBAChF,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC;oBAClB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAA;;oBAEhD,MAAM,CAAC,KAAK,GAAW,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAI,CAAA;gBAElD,gEAAgE;gBAChE,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC;oBACpB,MAAM,CAAC,KAAK,GAAG,CAAC,CAAA;;oBAEhB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAC3D,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAE,CAAA;QACtD,OAAO,CAAC,CAAC,CAAC,SAAS,CACjB,MAAM,CAAC,KAAK,EACZ,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EACtC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CACvC,CAAA;IACH,CAAC;CACF,CAAA"}
|