litecanvas 0.300.0 → 0.301.0

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/src/index.js CHANGED
@@ -45,7 +45,7 @@ export default function litecanvas(settings = {}) {
45
45
 
46
46
  DEV: assert(
47
47
  null == settings || 'object' === typeof settings,
48
- 'litecanvas() 1st parameter must be a object'
48
+ 'litecanvas() 1st argument must be a object'
49
49
  )
50
50
 
51
51
  // setup the settings default values
@@ -53,7 +53,7 @@ export default function litecanvas(settings = {}) {
53
53
 
54
54
  let _loop = settings.loop,
55
55
  /** @type {boolean} */
56
- _initialized = false,
56
+ _initialized,
57
57
  /** @type {boolean} */
58
58
  _paused,
59
59
  /** @type {HTMLCanvasElement} */
@@ -131,9 +131,9 @@ export default function litecanvas(settings = {}) {
131
131
  * @tutorial https://gamedev.net/tutorials/programming/general-and-gameplay-programming/a-brief-introduction-to-lerp-r4954/
132
132
  */
133
133
  lerp: (start, end, t) => {
134
- DEV: assert(isNumber(start), 'lerp() 1st parameter must be a number')
135
- DEV: assert(isNumber(end), 'lerp() 2nd parameter must be a number')
136
- DEV: assert(isNumber(t), 'lerp() 3rd parameter must be a number')
134
+ DEV: assert(isNumber(start), 'lerp() 1st argument must be a number')
135
+ DEV: assert(isNumber(end), 'lerp() 2nd argument must be a number')
136
+ DEV: assert(isNumber(t), 'lerp() 3rd argument must be a number')
137
137
 
138
138
  return start + t * (end - start)
139
139
  },
@@ -145,7 +145,7 @@ export default function litecanvas(settings = {}) {
145
145
  * @returns {number} the value in radians
146
146
  */
147
147
  deg2rad: (degs) => {
148
- DEV: assert(isNumber(degs), 'deg2rad() 1st parameter must be a number')
148
+ DEV: assert(isNumber(degs), 'deg2rad() 1st argument must be a number')
149
149
 
150
150
  return (math.PI / 180) * degs
151
151
  },
@@ -157,7 +157,7 @@ export default function litecanvas(settings = {}) {
157
157
  * @returns {number} the value in degrees
158
158
  */
159
159
  rad2deg: (rads) => {
160
- DEV: assert(isNumber(rads), 'rad2deg() 1st parameter must be a number')
160
+ DEV: assert(isNumber(rads), 'rad2deg() 1st argument must be a number')
161
161
 
162
162
  return (180 / math.PI) * rads
163
163
  },
@@ -172,8 +172,8 @@ export default function litecanvas(settings = {}) {
172
172
  * @returns {number} the remainder
173
173
  */
174
174
  mod(a, b) {
175
- DEV: assert(isNumber(a), 'mod() 1st parameter must be a number')
176
- DEV: assert(isNumber(b) && b >= 0, 'mod() 2nd parameter must be a non-negative number')
175
+ DEV: assert(isNumber(a), 'mod() 1st argument must be a number')
176
+ DEV: assert(isNumber(b) && b >= 0, 'mod() 2nd argument must be a non-negative number')
177
177
 
178
178
  return ((a % b) + b) % b || 0
179
179
  },
@@ -188,10 +188,10 @@ export default function litecanvas(settings = {}) {
188
188
  * @returns {number} rounded number.
189
189
  */
190
190
  round: (n, precision = 0) => {
191
- DEV: assert(isNumber(n), 'round() 1st parameter must be a number')
191
+ DEV: assert(isNumber(n), 'round() 1st argument must be a number')
192
192
  DEV: assert(
193
193
  isNumber(precision) && precision >= 0,
194
- 'round() 2nd parameter must be a non-negative number'
194
+ 'round() 2nd argument must be a non-negative number'
195
195
  )
196
196
 
197
197
  if (!precision) {
@@ -210,10 +210,10 @@ export default function litecanvas(settings = {}) {
210
210
  * @returns {number}
211
211
  */
212
212
  clamp: (value, min, max) => {
213
- DEV: assert(isNumber(value), 'clamp() 1st parameter must be a number')
214
- DEV: assert(isNumber(min), 'clamp() 2nd parameter must be a number')
215
- DEV: assert(isNumber(max), 'clamp() 3rd parameter must be a number')
216
- DEV: assert(max >= min, 'clamp() the 2nd parameter must be less than the 3rd parameter')
213
+ DEV: assert(isNumber(value), 'clamp() 1st argument must be a number')
214
+ DEV: assert(isNumber(min), 'clamp() 2nd argument must be a number')
215
+ DEV: assert(isNumber(max), 'clamp() 3rd argument must be a number')
216
+ DEV: assert(max >= min, 'clamp() the 2nd argument must be less than the 3rd argument')
217
217
 
218
218
  if (value < min) return min
219
219
  if (value > max) return max
@@ -230,10 +230,10 @@ export default function litecanvas(settings = {}) {
230
230
  * @returns {number}
231
231
  */
232
232
  dist: (x1, y1, x2, y2) => {
233
- DEV: assert(isNumber(x1), 'dist() 1st parameter must be a number')
234
- DEV: assert(isNumber(y1), 'dist() 2nd parameter must be a number')
235
- DEV: assert(isNumber(x2), 'dist() 3rd parameter must be a number')
236
- DEV: assert(isNumber(y2), 'dist() 4th parameter must be a number')
233
+ DEV: assert(isNumber(x1), 'dist() 1st argument must be a number')
234
+ DEV: assert(isNumber(y1), 'dist() 2nd argument must be a number')
235
+ DEV: assert(isNumber(x2), 'dist() 3rd argument must be a number')
236
+ DEV: assert(isNumber(y2), 'dist() 4th argument must be a number')
237
237
 
238
238
  return math.hypot(x2 - x1, y2 - y1)
239
239
  },
@@ -247,10 +247,10 @@ export default function litecanvas(settings = {}) {
247
247
  * @returns {number}
248
248
  */
249
249
  wrap: (value, min, max) => {
250
- DEV: assert(isNumber(value), 'wrap() 1st parameter must be a number')
251
- DEV: assert(isNumber(min), 'wrap() 2nd parameter must be a number')
252
- DEV: assert(isNumber(max), 'wrap() 3rd parameter must be a number')
253
- DEV: assert(max > min, 'wrap() the 2nd parameter must be less than the 3rd parameter')
250
+ DEV: assert(isNumber(value), 'wrap() 1st argument must be a number')
251
+ DEV: assert(isNumber(min), 'wrap() 2nd argument must be a number')
252
+ DEV: assert(isNumber(max), 'wrap() 3rd argument must be a number')
253
+ DEV: assert(max > min, 'wrap() the 2nd argument must be less than the 3rd argument')
254
254
 
255
255
  return value - (max - min) * math.floor((value - min) / (max - min))
256
256
  },
@@ -267,14 +267,14 @@ export default function litecanvas(settings = {}) {
267
267
  * @returns {number} the remapped number
268
268
  */
269
269
  map(value, start1, stop1, start2, stop2, withinBounds) {
270
- DEV: assert(isNumber(value), 'map() 1st parameter must be a number')
271
- DEV: assert(isNumber(start1), 'map() 2nd parameter must be a number')
272
- DEV: assert(isNumber(stop1), 'map() 3rd parameter must be a number')
273
- DEV: assert(isNumber(start2), 'map() 4th parameter must be a number')
274
- DEV: assert(isNumber(stop2), 'map() 5th parameter must be a number')
270
+ DEV: assert(isNumber(value), 'map() 1st argument must be a number')
271
+ DEV: assert(isNumber(start1), 'map() 2nd argument must be a number')
272
+ DEV: assert(isNumber(stop1), 'map() 3rd argument must be a number')
273
+ DEV: assert(isNumber(start2), 'map() 4th argument must be a number')
274
+ DEV: assert(isNumber(stop2), 'map() 5th argument must be a number')
275
275
  DEV: assert(
276
276
  stop1 !== start1,
277
- 'map() the 2nd parameter must be different than the 3rd parameter'
277
+ 'map() the 2nd argument must be different than the 3rd argument'
278
278
  )
279
279
 
280
280
  // prettier-ignore
@@ -293,12 +293,12 @@ export default function litecanvas(settings = {}) {
293
293
  * @returns {number} the normalized number.
294
294
  */
295
295
  norm: (value, start, stop) => {
296
- DEV: assert(isNumber(value), 'norm() 1st parameter must be a number')
297
- DEV: assert(isNumber(start), 'norm() 2nd parameter must be a number')
298
- DEV: assert(isNumber(stop), 'norm() 3rd parameter must be a number')
296
+ DEV: assert(isNumber(value), 'norm() 1st argument must be a number')
297
+ DEV: assert(isNumber(start), 'norm() 2nd argument must be a number')
298
+ DEV: assert(isNumber(stop), 'norm() 3rd argument must be a number')
299
299
  DEV: assert(
300
300
  start !== stop,
301
- 'norm() the 2nd parameter must be different than the 3rd parameter'
301
+ 'norm() the 2nd argument must be different than the 3rd argument'
302
302
  )
303
303
 
304
304
  return instance.map(value, start, stop, 0, 1)
@@ -314,9 +314,9 @@ export default function litecanvas(settings = {}) {
314
314
  * @returns {number} the random number
315
315
  */
316
316
  rand: (min = 0.0, max = 1.0) => {
317
- DEV: assert(isNumber(min), 'rand() 1st parameter must be a number')
318
- DEV: assert(isNumber(max), 'rand() 2nd parameter must be a number')
319
- DEV: assert(max >= min, 'rand() the 1st parameter must be less than the 2nd parameter')
317
+ DEV: assert(isNumber(min), 'rand() 1st argument must be a number')
318
+ DEV: assert(isNumber(max), 'rand() 2nd argument must be a number')
319
+ DEV: assert(max >= min, 'rand() the 1st argument must be less than the 2nd argument')
320
320
 
321
321
  const a = 1664525
322
322
  const c = 1013904223
@@ -335,9 +335,9 @@ export default function litecanvas(settings = {}) {
335
335
  * @returns {number} the random number
336
336
  */
337
337
  randi: (min = 0, max = 1) => {
338
- DEV: assert(isNumber(min), 'randi() 1st parameter must be a number')
339
- DEV: assert(isNumber(max), 'randi() 2nd parameter must be a number')
340
- DEV: assert(max >= min, 'randi() the 1st parameter must be less than the 2nd parameter')
338
+ DEV: assert(isNumber(min), 'randi() 1st argument must be a number')
339
+ DEV: assert(isNumber(max), 'randi() 2nd argument must be a number')
340
+ DEV: assert(max >= min, 'randi() the 1st argument must be less than the 2nd argument')
341
341
 
342
342
  return ~~instance.rand(min, max + 1)
343
343
  },
@@ -352,7 +352,7 @@ export default function litecanvas(settings = {}) {
352
352
  rseed(value) {
353
353
  DEV: assert(
354
354
  isNumber(value) && value >= 0,
355
- 'rseed() 1st parameter must be a non-negative integer'
355
+ 'rseed() 1st argument must be a non-negative integer'
356
356
  )
357
357
 
358
358
  _rngSeed = ~~value
@@ -367,7 +367,7 @@ export default function litecanvas(settings = {}) {
367
367
  cls(color) {
368
368
  DEV: assert(
369
369
  null == color || (isNumber(color) && color >= 0),
370
- 'cls() 1st parameter must be a non-negative number'
370
+ 'cls() 1st argument must be a non-negative number'
371
371
  )
372
372
 
373
373
  if (null == color) {
@@ -390,23 +390,23 @@ export default function litecanvas(settings = {}) {
390
390
  * @see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/roundRect
391
391
  */
392
392
  rect(x, y, width, height, color, radii) {
393
- DEV: assert(isNumber(x), 'rect() 1st parameter must be a number')
394
- DEV: assert(isNumber(y), 'rect() 2nd parameter must be a number')
393
+ DEV: assert(isNumber(x), 'rect() 1st argument must be a number')
394
+ DEV: assert(isNumber(y), 'rect() 2nd argument must be a number')
395
395
  DEV: assert(
396
396
  isNumber(width) && width > 0,
397
- 'rect() 3rd parameter must be a positive number'
397
+ 'rect() 3rd argument must be a positive number'
398
398
  )
399
399
  DEV: assert(
400
400
  isNumber(height) && height >= 0,
401
- 'rect() 4th parameter must be a non-negative number'
401
+ 'rect() 4th argument must be a non-negative number'
402
402
  )
403
403
  DEV: assert(
404
404
  null == color || (isNumber(color) && color >= 0),
405
- 'rect() 5th parameter must be a non-negative number'
405
+ 'rect() 5th argument must be a non-negative number'
406
406
  )
407
407
  DEV: assert(
408
408
  null == radii || isNumber(radii) || (Array.isArray(radii) && radii.length >= 1),
409
- 'rect() 6th parameter must be a number or array of numbers'
409
+ 'rect() 6th argument must be a number or array of numbers'
410
410
  )
411
411
 
412
412
  beginPath(_ctx)
@@ -432,24 +432,24 @@ export default function litecanvas(settings = {}) {
432
432
  * @param {number|number[]} [radii] A number or list specifying the radii used to draw a rounded-borders rectangle
433
433
  */
434
434
  rectfill(x, y, width, height, color, radii) {
435
- DEV: assert(isNumber(x), 'rectfill() 1st parameter must be a number')
436
- DEV: assert(isNumber(y), 'rectfill() 2nd parameter must be a number')
435
+ DEV: assert(isNumber(x), 'rectfill() 1st argument must be a number')
436
+ DEV: assert(isNumber(y), 'rectfill() 2nd argument must be a number')
437
437
  DEV: assert(
438
438
  isNumber(width) && width >= 0,
439
- 'rectfill() 3rd parameter must be a non-negative number'
439
+ 'rectfill() 3rd argument must be a non-negative number'
440
440
  )
441
441
  DEV: assert(
442
442
  isNumber(height) && height >= 0,
443
- 'rectfill() 4th parameter must be a non-negative number'
443
+ 'rectfill() 4th argument must be a non-negative number'
444
444
  )
445
445
  DEV: assert(
446
446
  null == color || (isNumber(color) && color >= 0),
447
- 'rectfill() 5th parameter must be a non-negative number'
447
+ 'rectfill() 5th argument must be a non-negative number'
448
448
  )
449
449
  DEV: assert(
450
450
  null == radii || isNumber(radii) || (Array.isArray(radii) && radii.length >= 1),
451
451
 
452
- 'rectfill() 6th parameter must be a number or array of at least 2 numbers'
452
+ 'rectfill() 6th argument must be a number or array of at least 2 numbers'
453
453
  )
454
454
 
455
455
  beginPath(_ctx)
@@ -468,19 +468,19 @@ export default function litecanvas(settings = {}) {
468
468
  * @param {number} [color=0] the color index
469
469
  */
470
470
  oval(x, y, radiusX, radiusY, color) {
471
- DEV: assert(isNumber(x), 'oval() 1st parameter must be a number')
472
- DEV: assert(isNumber(y), 'oval() 2nd parameter must be a number')
471
+ DEV: assert(isNumber(x), 'oval() 1st argument must be a number')
472
+ DEV: assert(isNumber(y), 'oval() 2nd argument must be a number')
473
473
  DEV: assert(
474
474
  isNumber(radiusX) && radiusX >= 0,
475
- 'oval() 3rd parameter must be a non-negative number'
475
+ 'oval() 3rd argument must be a non-negative number'
476
476
  )
477
477
  DEV: assert(
478
478
  isNumber(radiusY) && radiusY >= 0,
479
- 'oval() 4th parameter must be a non-negative number'
479
+ 'oval() 4th argument must be a non-negative number'
480
480
  )
481
481
  DEV: assert(
482
482
  null == color || (isNumber(color) && color >= 0),
483
- 'oval() 5th parameter must be a non-negative number'
483
+ 'oval() 5th argument must be a non-negative number'
484
484
  )
485
485
 
486
486
  beginPath(_ctx)
@@ -499,19 +499,19 @@ export default function litecanvas(settings = {}) {
499
499
  * @param {number} [color=0] the color index
500
500
  */
501
501
  ovalfill(x, y, radiusX, radiusY, color) {
502
- DEV: assert(isNumber(x), 'ovalfill() 1st parameter must be a number')
503
- DEV: assert(isNumber(y), 'ovalfill() 2nd parameter must be a number')
502
+ DEV: assert(isNumber(x), 'ovalfill() 1st argument must be a number')
503
+ DEV: assert(isNumber(y), 'ovalfill() 2nd argument must be a number')
504
504
  DEV: assert(
505
505
  isNumber(radiusX) && radiusX >= 0,
506
- 'ovalfill() 3rd parameter must be a non-negative number'
506
+ 'ovalfill() 3rd argument must be a non-negative number'
507
507
  )
508
508
  DEV: assert(
509
509
  isNumber(radiusY) && radiusY >= 0,
510
- 'ovalfill() 4th parameter must be a non-negative number'
510
+ 'ovalfill() 4th argument must be a non-negative number'
511
511
  )
512
512
  DEV: assert(
513
513
  null == color || (isNumber(color) && color >= 0),
514
- 'ovalfill() 5th parameter must be a non-negative number'
514
+ 'ovalfill() 5th argument must be a non-negative number'
515
515
  )
516
516
 
517
517
  beginPath(_ctx)
@@ -529,15 +529,15 @@ export default function litecanvas(settings = {}) {
529
529
  * @param {number} [color=0] the color index
530
530
  */
531
531
  circ(x, y, radius, color) {
532
- DEV: assert(isNumber(x), 'circ() 1st parameter must be a number')
533
- DEV: assert(isNumber(y), 'circ() 2nd parameter must be a number')
532
+ DEV: assert(isNumber(x), 'circ() 1st argument must be a number')
533
+ DEV: assert(isNumber(y), 'circ() 2nd argument must be a number')
534
534
  DEV: assert(
535
535
  isNumber(radius) && radius >= 0,
536
- 'circ() 3rd parameter must be a non-negative number'
536
+ 'circ() 3rd argument must be a non-negative number'
537
537
  )
538
538
  DEV: assert(
539
539
  null == color || (isNumber(color) && color >= 0),
540
- 'circ() 4th parameter must be a non-negative number'
540
+ 'circ() 4th argument must be a non-negative number'
541
541
  )
542
542
 
543
543
  instance.oval(x, y, radius, radius, color)
@@ -552,15 +552,15 @@ export default function litecanvas(settings = {}) {
552
552
  * @param {number} [color=0] the color index
553
553
  */
554
554
  circfill(x, y, radius, color) {
555
- DEV: assert(isNumber(x), 'circfill() 1st parameter must be a number')
556
- DEV: assert(isNumber(y), 'circfill() 2nd parameter must be a number')
555
+ DEV: assert(isNumber(x), 'circfill() 1st argument must be a number')
556
+ DEV: assert(isNumber(y), 'circfill() 2nd argument must be a number')
557
557
  DEV: assert(
558
558
  isNumber(radius) && radius >= 0,
559
- 'circfill() 3rd parameter must be a non-negative number'
559
+ 'circfill() 3rd argument must be a non-negative number'
560
560
  )
561
561
  DEV: assert(
562
562
  null == color || (isNumber(color) && color >= 0),
563
- 'circfill() 4th parameter must be a non-negative number'
563
+ 'circfill() 4th argument must be a non-negative number'
564
564
  )
565
565
 
566
566
  instance.ovalfill(x, y, radius, radius, color)
@@ -573,10 +573,10 @@ export default function litecanvas(settings = {}) {
573
573
  * @param {number[]} points an array of Xs and Ys coordinates
574
574
  */
575
575
  shape(points) {
576
- DEV: assert(Array.isArray(points), 'shape() 1st parameter must be an array of numbers')
576
+ DEV: assert(Array.isArray(points), 'shape() 1st argument must be an array of numbers')
577
577
  DEV: assert(
578
578
  points.length >= 6,
579
- 'shape() 1st parameter must be an array with at least 6 numbers (3 points)'
579
+ 'shape() 1st argument must be an array with at least 6 numbers (3 points)'
580
580
  )
581
581
 
582
582
  beginPath(_ctx)
@@ -601,13 +601,13 @@ export default function litecanvas(settings = {}) {
601
601
  * @param {number} [color=0] the color index
602
602
  */
603
603
  line(x1, y1, x2, y2, color) {
604
- DEV: assert(isNumber(x1), 'line() 1st parameter must be a number')
605
- DEV: assert(isNumber(y1), 'line() 2nd parameter must be a number')
606
- DEV: assert(isNumber(x2), 'line() 3rd parameter must be a non-negative number')
607
- DEV: assert(isNumber(y2), 'line() 4th parameter must be a non-negative number')
604
+ DEV: assert(isNumber(x1), 'line() 1st argument must be a number')
605
+ DEV: assert(isNumber(y1), 'line() 2nd argument must be a number')
606
+ DEV: assert(isNumber(x2), 'line() 3rd argument must be a non-negative number')
607
+ DEV: assert(isNumber(y2), 'line() 4th argument must be a non-negative number')
608
608
  DEV: assert(
609
609
  null == color || (isNumber(color) && color >= 0),
610
- 'line() 5th parameter must be a non-negative number'
610
+ 'line() 5th argument must be a non-negative number'
611
611
  )
612
612
 
613
613
  beginPath(_ctx)
@@ -630,7 +630,7 @@ export default function litecanvas(settings = {}) {
630
630
  linewidth(value) {
631
631
  DEV: assert(
632
632
  isNumber(value) && value >= 0,
633
- 'linewidth() 1st parameter must be a non-negative integer'
633
+ 'linewidth() 1st argument must be a non-negative integer'
634
634
  )
635
635
 
636
636
  _ctx.lineWidth = ~~value
@@ -648,9 +648,9 @@ export default function litecanvas(settings = {}) {
648
648
  linedash(segments, offset = 0) {
649
649
  DEV: assert(
650
650
  Array.isArray(segments) && segments.length > 0,
651
- 'linedash() 1st parameter must be an array of numbers'
651
+ 'linedash() 1st argument must be an array of numbers'
652
652
  )
653
- DEV: assert(isNumber(offset), 'linedash() 2nd parameter must be a number')
653
+ DEV: assert(isNumber(offset), 'linedash() 2nd argument must be a number')
654
654
 
655
655
  _ctx.setLineDash(segments)
656
656
  _ctx.lineDashOffset = offset
@@ -667,13 +667,13 @@ export default function litecanvas(settings = {}) {
667
667
  * @param {string} [fontStyle] can be "normal" (default), "italic" and/or "bold".
668
668
  */
669
669
  text(x, y, message, color = _defaultTextColor, fontStyle = 'normal') {
670
- DEV: assert(isNumber(x), 'text() 1st parameter must be a number')
671
- DEV: assert(isNumber(y), 'text() 2nd parameter must be a number')
670
+ DEV: assert(isNumber(x), 'text() 1st argument must be a number')
671
+ DEV: assert(isNumber(y), 'text() 2nd argument must be a number')
672
672
  DEV: assert(
673
673
  null == color || (isNumber(color) && color >= 0),
674
- 'text() 4th parameter must be a non-negative number'
674
+ 'text() 4th argument must be a non-negative number'
675
675
  )
676
- DEV: assert('string' === typeof fontStyle, 'text() 5th parameter must be a string')
676
+ DEV: assert('string' === typeof fontStyle, 'text() 5th argument must be a string')
677
677
 
678
678
  _ctx.font = `${fontStyle} ${_fontSize}px ${_fontFamily}`
679
679
  _ctx.fillStyle = getColor(color)
@@ -692,7 +692,7 @@ export default function litecanvas(settings = {}) {
692
692
  * @param {number} value
693
693
  */
694
694
  textgap(value) {
695
- DEV: assert(isNumber(value), 'textgap() 1st parameter must be a number')
695
+ DEV: assert(isNumber(value), 'textgap() 1st argument must be a number')
696
696
 
697
697
  _fontLineHeight = value
698
698
  },
@@ -703,7 +703,7 @@ export default function litecanvas(settings = {}) {
703
703
  * @param {string} family
704
704
  */
705
705
  textfont(family) {
706
- DEV: assert('string' === typeof family, 'textfont() 1st parameter must be a string')
706
+ DEV: assert('string' === typeof family, 'textfont() 1st argument must be a string')
707
707
 
708
708
  _fontFamily = family
709
709
  },
@@ -714,7 +714,7 @@ export default function litecanvas(settings = {}) {
714
714
  * @param {number} size
715
715
  */
716
716
  textsize(size) {
717
- DEV: assert(isNumber(size), 'textsize() 1st parameter must be a number')
717
+ DEV: assert(isNumber(size), 'textsize() 1st argument must be a number')
718
718
 
719
719
  _fontSize = size
720
720
  },
@@ -731,7 +731,7 @@ export default function litecanvas(settings = {}) {
731
731
  DEV: assert(
732
732
  null == align || ['left', 'right', 'center', 'start', 'end'].includes(align),
733
733
 
734
- 'textalign() 1st parameter must be null or one of the following strings: center, left, right, start or end.'
734
+ 'textalign() 1st argument must be null or one of the following strings: center, left, right, start or end.'
735
735
  )
736
736
  DEV: assert(
737
737
  null == baseline ||
@@ -739,7 +739,7 @@ export default function litecanvas(settings = {}) {
739
739
  baseline
740
740
  ),
741
741
 
742
- 'textalign() 2nd parameter must be null or one of the following strings: middle, top, bottom, hanging, alphabetic or ideographic.'
742
+ 'textalign() 2nd argument must be null or one of the following strings: middle, top, bottom, hanging, alphabetic or ideographic.'
743
743
  )
744
744
 
745
745
  if (align) _ctx.textAlign = align
@@ -755,8 +755,8 @@ export default function litecanvas(settings = {}) {
755
755
  * @param {CanvasImageSource} source
756
756
  */
757
757
  image(x, y, source) {
758
- DEV: assert(isNumber(x), 'image() 1st parameter must be a number')
759
- DEV: assert(isNumber(y), 'image() 2nd parameter must be a number')
758
+ DEV: assert(isNumber(x), 'image() 1st argument must be a number')
759
+ DEV: assert(isNumber(y), 'image() 2nd argument must be a number')
760
760
 
761
761
  _ctx.drawImage(source, ~~x, ~~y)
762
762
  },
@@ -773,9 +773,9 @@ export default function litecanvas(settings = {}) {
773
773
  * @param {string} pixels
774
774
  */
775
775
  spr(x, y, pixels) {
776
- DEV: assert(isNumber(x), 'spr() 1st parameter must be a number')
777
- DEV: assert(isNumber(y), 'spr() 2nd parameter must be a number')
778
- DEV: assert('string' === typeof pixels, 'spr() 3rd parameter must be a string')
776
+ DEV: assert(isNumber(x), 'spr() 1st argument must be a number')
777
+ DEV: assert(isNumber(y), 'spr() 2nd argument must be a number')
778
+ DEV: assert('string' === typeof pixels, 'spr() 3rd argument must be a string')
779
779
 
780
780
  const rows = pixels
781
781
  .replace(/[^\w.\n]/g, '')
@@ -804,23 +804,20 @@ export default function litecanvas(settings = {}) {
804
804
  * @see https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas
805
805
  */
806
806
  paint(width, height, callback, options = {}) {
807
- DEV: assert(
808
- isNumber(width) && width >= 1,
809
- 'paint() 1st parameter must be a positive number'
810
- )
807
+ DEV: assert(isNumber(width) && width >= 1, 'paint() 1st argument must be a number >= 1')
811
808
  DEV: assert(
812
809
  isNumber(height) && height >= 1,
813
- 'paint() 2nd parameter must be a positive number'
810
+ 'paint() 2nd argument must be a number >= 1'
814
811
  )
815
- DEV: assert('function' === typeof callback, 'paint() 3rd parameter must be a function')
812
+ DEV: assert('function' === typeof callback, 'paint() 3rd argument must be a function')
816
813
  DEV: assert(
817
814
  (options && null == options.scale) ||
818
815
  (isNumber(options.scale) && options.scale > 0),
819
- 'paint() 4th parameter (options.scale) must be a positive number'
816
+ 'paint() 4th argument (options.scale) must be a positive number'
820
817
  )
821
818
  DEV: assert(
822
819
  (options && null == options.canvas) || options.canvas instanceof OffscreenCanvas,
823
- 'paint() 4th parameter (options.canvas) must be an OffscreenCanvas'
820
+ 'paint() 4th argument (options.canvas) must be an OffscreenCanvas'
824
821
  )
825
822
 
826
823
  const /** @type {OffscreenCanvas} */
@@ -853,7 +850,7 @@ export default function litecanvas(settings = {}) {
853
850
  null == context ||
854
851
  context instanceof CanvasRenderingContext2D ||
855
852
  context instanceof OffscreenCanvasRenderingContext2D,
856
- 'ctx() 1st parameter must be an [Offscreen]CanvasRenderingContext2D'
853
+ 'ctx() 1st argument must be an [Offscreen]CanvasRenderingContext2D'
857
854
  )
858
855
 
859
856
  if (context) {
@@ -875,11 +872,11 @@ export default function litecanvas(settings = {}) {
875
872
  * @see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/save
876
873
  */
877
874
  push(translateX = 0, translateY = translateX, rotation = 0, scaleX = 1, scaleY = scaleX) {
878
- DEV: assert(isNumber(translateX), 'push() 1st parameter must be a number')
879
- DEV: assert(isNumber(translateY), 'push() 2nd parameter must be a number')
880
- DEV: assert(isNumber(rotation), 'push() 3rd parameter must be a number')
881
- DEV: assert(isNumber(scaleX), 'push() 4th parameter must be a number')
882
- DEV: assert(isNumber(scaleY), 'push() 5th parameter must be a number')
875
+ DEV: assert(isNumber(translateX), 'push() 1st argument must be a number')
876
+ DEV: assert(isNumber(translateY), 'push() 2nd argument must be a number')
877
+ DEV: assert(isNumber(rotation), 'push() 3rd argument must be a number')
878
+ DEV: assert(isNumber(scaleX), 'push() 4th argument must be a number')
879
+ DEV: assert(isNumber(scaleY), 'push() 5th argument must be a number')
883
880
 
884
881
  _ctx.save()
885
882
  instance.translate(translateX, translateY)
@@ -903,8 +900,8 @@ export default function litecanvas(settings = {}) {
903
900
  * @param {number} y
904
901
  */
905
902
  translate(x, y) {
906
- DEV: assert(isNumber(x), 'translate() 1st parameter must be a number')
907
- DEV: assert(isNumber(y), 'translate() 2nd parameter must be a number')
903
+ DEV: assert(isNumber(x), 'translate() 1st argument must be a number')
904
+ DEV: assert(isNumber(y), 'translate() 2nd argument must be a number')
908
905
 
909
906
  _ctx.translate(~~x, ~~y)
910
907
  },
@@ -916,8 +913,8 @@ export default function litecanvas(settings = {}) {
916
913
  * @param {number} [y]
917
914
  */
918
915
  scale(x, y = x) {
919
- DEV: assert(isNumber(x), 'scale() 1st parameter must be a number')
920
- DEV: assert(isNumber(y), 'scale() 2nd parameter must be a number')
916
+ DEV: assert(isNumber(x), 'scale() 1st argument must be a number')
917
+ DEV: assert(isNumber(y), 'scale() 2nd argument must be a number')
921
918
 
922
919
  _ctx.scale(x, y)
923
920
  },
@@ -928,7 +925,7 @@ export default function litecanvas(settings = {}) {
928
925
  * @param {number} radians
929
926
  */
930
927
  rotate(radians) {
931
- DEV: assert(isNumber(radians), 'rotate() 1st parameter must be a number')
928
+ DEV: assert(isNumber(radians), 'rotate() 1st argument must be a number')
932
929
 
933
930
  _ctx.rotate(radians)
934
931
  },
@@ -940,7 +937,7 @@ export default function litecanvas(settings = {}) {
940
937
  * @see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalAlpha
941
938
  */
942
939
  alpha(value) {
943
- DEV: assert(isNumber(value), 'alpha() 1st parameter must be a number')
940
+ DEV: assert(isNumber(value), 'alpha() 1st argument must be a number')
944
941
 
945
942
  _ctx.globalAlpha = instance.clamp(value, 0, 1)
946
943
  },
@@ -953,7 +950,7 @@ export default function litecanvas(settings = {}) {
953
950
  fill(color) {
954
951
  DEV: assert(
955
952
  null == color || (isNumber(color) && color >= 0),
956
- 'fill() 1st parameter must be a non-negative number'
953
+ 'fill() 1st argument must be a non-negative number'
957
954
  )
958
955
 
959
956
  _ctx.fillStyle = getColor(color)
@@ -968,7 +965,7 @@ export default function litecanvas(settings = {}) {
968
965
  stroke(color) {
969
966
  DEV: assert(
970
967
  null == color || (isNumber(color) && color >= 0),
971
- 'stroke() 1st parameter must be a non-negative number'
968
+ 'stroke() 1st argument must be a non-negative number'
972
969
  )
973
970
 
974
971
  _ctx.strokeStyle = getColor(color)
@@ -984,7 +981,7 @@ export default function litecanvas(settings = {}) {
984
981
  clip(callback) {
985
982
  DEV: assert(
986
983
  'function' === typeof callback,
987
- 'clip() 1st parameter must be a function (ctx) => void'
984
+ 'clip() 1st argument must be a function (ctx) => void'
988
985
  )
989
986
 
990
987
  beginPath(_ctx)
@@ -1007,15 +1004,15 @@ export default function litecanvas(settings = {}) {
1007
1004
  sfx(zzfxParams, pitchSlide, volumeFactor) {
1008
1005
  DEV: assert(
1009
1006
  null == zzfxParams || Array.isArray(zzfxParams),
1010
- 'sfx() 1st parameter must be an array'
1007
+ 'sfx() 1st argument must be an array'
1011
1008
  )
1012
1009
  DEV: assert(
1013
1010
  null == pitchSlide || isNumber(pitchSlide),
1014
- 'sfx() 2nd parameter must be a number'
1011
+ 'sfx() 2nd argument must be a number'
1015
1012
  )
1016
1013
  DEV: assert(
1017
1014
  null == volumeFactor || isNumber(volumeFactor),
1018
- 'sfx() 3rd parameter must be a number'
1015
+ 'sfx() 3rd argument must be a number'
1019
1016
  )
1020
1017
 
1021
1018
  if (
@@ -1048,7 +1045,7 @@ export default function litecanvas(settings = {}) {
1048
1045
  volume(value) {
1049
1046
  DEV: assert(
1050
1047
  isNumber(value) && value >= 0,
1051
- 'volume() 1st parameter must be a non-negative number'
1048
+ 'volume() 1st argument must be a non-negative number'
1052
1049
  )
1053
1050
 
1054
1051
  root.zzfxV = value
@@ -1071,13 +1068,42 @@ export default function litecanvas(settings = {}) {
1071
1068
  use(callback, config = {}) {
1072
1069
  DEV: assert(
1073
1070
  'function' === typeof callback,
1074
- 'use() 1st parameter must be a function (instance, config) => any'
1071
+ 'use() 1st argument must be a function (instance, config) => any'
1075
1072
  )
1076
- DEV: assert('object' === typeof config, 'use() 2nd parameter must be an object')
1073
+ DEV: assert('object' === typeof config, 'use() 2nd argument must be an object')
1077
1074
 
1078
1075
  loadPlugin(callback, config)
1079
1076
  },
1080
1077
 
1078
+ /**
1079
+ * Resizes the canvas
1080
+ *
1081
+ * @param {number} width
1082
+ * @param {number} [height]
1083
+ * @param {boolean|number} [autoscale]
1084
+ */
1085
+ resize(width, height = width, autoscale) {
1086
+ DEV: assert(
1087
+ isNumber(width) && width >= 1,
1088
+ 'resize() 1st argument must be a number >= 1'
1089
+ )
1090
+ DEV: assert(
1091
+ isNumber(height) && height >= 1,
1092
+ 'resize() 2nd argument must be a number >= 1'
1093
+ )
1094
+ DEV: assert(
1095
+ null == autoscale ||
1096
+ 'boolean' === typeof autoscale ||
1097
+ (isNumber(autoscale) && autoscale > 1),
1098
+ 'resize() 3rd argument must be a boolean or a number > 1'
1099
+ )
1100
+
1101
+ settings.height = height
1102
+ settings.autoscale = null == autoscale ? settings.autoscale : autoscale
1103
+
1104
+ resizeCanvas()
1105
+ },
1106
+
1081
1107
  /**
1082
1108
  * Add a game event listener.
1083
1109
  *
@@ -1085,8 +1111,8 @@ export default function litecanvas(settings = {}) {
1085
1111
  * @param {Function} callback the function that is called when the event occurs
1086
1112
  */
1087
1113
  listen: (eventName, callback) => {
1088
- DEV: assert('string' === typeof eventName, 'listen() 1st parameter must be a string')
1089
- DEV: assert('function' === typeof callback, 'listen() 2nd parameter must be a function')
1114
+ DEV: assert('string' === typeof eventName, 'listen() 1st argument must be a string')
1115
+ DEV: assert('function' === typeof callback, 'listen() 2nd argument must be a function')
1090
1116
 
1091
1117
  eventName = lowerCase(eventName)
1092
1118
 
@@ -1101,10 +1127,10 @@ export default function litecanvas(settings = {}) {
1101
1127
  * @param {Function} callback the function that is called when the event occurs
1102
1128
  */
1103
1129
  unlisten: (eventName, callback) => {
1104
- DEV: assert('string' === typeof eventName, 'unlisten() 1st parameter must be a string')
1130
+ DEV: assert('string' === typeof eventName, 'unlisten() 1st argument must be a string')
1105
1131
  DEV: assert(
1106
1132
  'function' === typeof callback,
1107
- 'unlisten() 2nd parameter must be a function'
1133
+ 'unlisten() 2nd argument must be a function'
1108
1134
  )
1109
1135
 
1110
1136
  eventName = lowerCase(eventName)
@@ -1129,7 +1155,7 @@ export default function litecanvas(settings = {}) {
1129
1155
  * @returns {any} always returns the second argument
1130
1156
  */
1131
1157
  emit(eventName, arg1, arg2, arg3, arg4) {
1132
- DEV: assert('string' === typeof eventName, 'emit() 1st parameter must be a string')
1158
+ DEV: assert('string' === typeof eventName, 'emit() 1st argument must be a string')
1133
1159
 
1134
1160
  if (_initialized) {
1135
1161
  eventName = lowerCase(eventName)
@@ -1164,11 +1190,11 @@ export default function litecanvas(settings = {}) {
1164
1190
  pal(colors, textColor = 3) {
1165
1191
  DEV: assert(
1166
1192
  null == colors || (Array.isArray(colors) && colors.length > 0),
1167
- 'pal() 1st parameter must be null or an array of colors'
1193
+ 'pal() 1st argument must be null or an array of colors'
1168
1194
  )
1169
1195
  DEV: assert(
1170
1196
  isNumber(textColor) && textColor >= 0,
1171
- 'pal() 2nd parameter must be a non-negative number'
1197
+ 'pal() 2nd argument must be a non-negative number'
1172
1198
  )
1173
1199
 
1174
1200
  _colorPalette = colors || defaultPalette
@@ -1191,11 +1217,11 @@ export default function litecanvas(settings = {}) {
1191
1217
  palc(a, b) {
1192
1218
  DEV: assert(
1193
1219
  null == a || (isNumber(a) && a >= 0),
1194
- 'palc() 1st parameter must be a positive number'
1220
+ 'palc() 1st argument must be a positive number'
1195
1221
  )
1196
1222
  DEV: assert(
1197
1223
  isNumber(a) ? isNumber(b) && b >= 0 : null == b,
1198
- 'palc() 2nd parameter must be a positive number'
1224
+ 'palc() 2nd argument must be a positive number'
1199
1225
  )
1200
1226
 
1201
1227
  if (null == a) {
@@ -1217,7 +1243,7 @@ export default function litecanvas(settings = {}) {
1217
1243
  * @param {any} value the property value
1218
1244
  */
1219
1245
  def(key, value) {
1220
- DEV: assert('string' === typeof key, 'def() 1st parameter must be a string')
1246
+ DEV: assert('string' === typeof key, 'def() 1st argument must be a string')
1221
1247
  DEV: if (null == value) {
1222
1248
  console.warn(
1223
1249
  `[litecanvas] def() changed the key "${key}" to null (previous value was ${instance[key]})`
@@ -1240,7 +1266,7 @@ export default function litecanvas(settings = {}) {
1240
1266
  timescale(value) {
1241
1267
  DEV: assert(
1242
1268
  isNumber(value) && value >= 0,
1243
- 'timescale() 1st parameter must be a non-negative number'
1269
+ 'timescale() 1st argument must be a non-negative number'
1244
1270
  )
1245
1271
 
1246
1272
  _timeScale = value
@@ -1254,7 +1280,7 @@ export default function litecanvas(settings = {}) {
1254
1280
  framerate(value) {
1255
1281
  DEV: assert(
1256
1282
  isNumber(value) && value >= 1,
1257
- 'framerate() 1st parameter must be a positive number'
1283
+ 'framerate() 1st argument must be a number >= 1'
1258
1284
  )
1259
1285
 
1260
1286
  _fpsInterval = 1000 / ~~value
@@ -1267,7 +1293,7 @@ export default function litecanvas(settings = {}) {
1267
1293
  * @returns {any}
1268
1294
  */
1269
1295
  stat(index) {
1270
- DEV: assert(isNumber(index), 'stat() 1st parameter must be a number')
1296
+ DEV: assert(isNumber(index), 'stat() 1st argument must be a number')
1271
1297
 
1272
1298
  const internals = [
1273
1299
  // 0
@@ -1316,7 +1342,7 @@ export default function litecanvas(settings = {}) {
1316
1342
  DEV: assert(
1317
1343
  index >= 0 && index < internals.length,
1318
1344
 
1319
- 'stat() 1st parameter must be a number between 0 and ' + (internals.length - 1)
1345
+ 'stat() 1st argument must be a number between 0 and ' + (internals.length - 1)
1320
1346
  )
1321
1347
 
1322
1348
  return internals[index]
@@ -1407,8 +1433,6 @@ export default function litecanvas(settings = {}) {
1407
1433
  }
1408
1434
 
1409
1435
  function init() {
1410
- resizeCanvas()
1411
-
1412
1436
  // listen window resize event when "autoscale" is enabled
1413
1437
  if (settings.autoscale) {
1414
1438
  on(root, 'resize', resizeCanvas)
@@ -1610,7 +1634,7 @@ export default function litecanvas(settings = {}) {
1610
1634
  */
1611
1635
  const keyCheck = (keySet, key = '') => {
1612
1636
  key = lowerCase(key)
1613
- return !key ? keySet.size > 0 : keySet.has('space' === key ? ' ' : key)
1637
+ return key ? keySet.has('space' === key ? ' ' : key) : keySet.size > 0
1614
1638
  }
1615
1639
 
1616
1640
  /** @type {string} */
@@ -1641,7 +1665,7 @@ export default function litecanvas(settings = {}) {
1641
1665
  (key) => {
1642
1666
  DEV: assert(
1643
1667
  null == key || 'string' === typeof key,
1644
- 'iskeydown() 1st parameter must be a string or undefined'
1668
+ 'iskeydown() 1st argument must be a string'
1645
1669
  )
1646
1670
  return keyCheck(_keysDown, key)
1647
1671
  }
@@ -1656,7 +1680,7 @@ export default function litecanvas(settings = {}) {
1656
1680
  (key) => {
1657
1681
  DEV: assert(
1658
1682
  null == key || 'string' === typeof key,
1659
- 'iskeypressed() 1st parameter must be a string or undefined'
1683
+ 'iskeypressed() 1st argument must be a string'
1660
1684
  )
1661
1685
  return keyCheck(_keysPress, key)
1662
1686
  }
@@ -1742,8 +1766,6 @@ export default function litecanvas(settings = {}) {
1742
1766
 
1743
1767
  // disable default browser's right click in canvas
1744
1768
  _canvas.oncontextmenu = () => false
1745
-
1746
- resizeCanvas()
1747
1769
  }
1748
1770
 
1749
1771
  function resizeCanvas() {
@@ -1857,8 +1879,10 @@ export default function litecanvas(settings = {}) {
1857
1879
 
1858
1880
  // setup the canvas
1859
1881
  setupCanvas()
1882
+ resizeCanvas()
1860
1883
 
1861
1884
  // setup default event listeners
1885
+ // they have high priority
1862
1886
  if (_loop) {
1863
1887
  for (const eventName in _loop) {
1864
1888
  if (_loop[eventName]) instance.listen(eventName, _loop[eventName])