|
473 | 473 |
|
474 | 474 | const effects = [ |
475 | 475 | ` |
476 | | - filter: saturate(2.5) brightness(1.2) hue-rotate(340deg) blur(1px); |
| 476 | + filter: saturate(2.5) brightness(1.2) hue-rotate(340deg); |
477 | 477 | transform: skewX(-3deg); |
478 | 478 | `, |
479 | 479 | ` |
480 | | - filter: saturate(0.2) brightness(1.2) hue-rotate(190deg) blur(1px); |
| 480 | + filter: saturate(0.2) brightness(1.2) hue-rotate(190deg); |
481 | 481 | transform: skewX(3deg); |
482 | 482 | `, |
483 | 483 | ` |
484 | 484 | filter: saturate(3) brightness(1.2) contrast(1.3); |
485 | 485 | transform: scaleY(0.5) scaleX(1.5) skewX(3deg); |
486 | 486 | `, |
487 | 487 | ` |
488 | | - filter: saturate(3) hue-rotate(90deg) brightness(1.3) contrast(1.2) blur(1px); |
| 488 | + filter: saturate(3) hue-rotate(90deg) brightness(1.3) contrast(1.2); |
489 | 489 | transform: skewX(-3deg); |
490 | 490 | `, |
491 | 491 | ]; |
|
510 | 510 | x: 0, |
511 | 511 | y: 0, |
512 | 512 | moving: false, |
| 513 | + pointerId: -1, |
513 | 514 | }; |
514 | 515 |
|
515 | 516 | resetForge(); |
|
589 | 590 | let slot = 0; |
590 | 591 | for (let i = 0; i < 4; i++) { |
591 | 592 | slot = ~~(Math.random() * level.items.length); |
592 | | - console.log(levelState.level, slot, level.items[slot]); |
593 | 593 | while (level.items[slot]!.depth <= levelState.level) { |
594 | 594 | slot = ~~(Math.random() * level.items.length); |
595 | 595 | } |
|
648 | 648 | element?.addEventListener("pointerdown", startMove); |
649 | 649 | document.documentElement.addEventListener("pointermove", move); |
650 | 650 | document.documentElement.addEventListener("pointerup", stopMove); |
| 651 | + document.documentElement.addEventListener("pointercancel", stopMove); |
651 | 652 |
|
652 | 653 | function startMove(event: PointerEvent) { |
| 654 | + if (moveState.moving) return; |
653 | 655 | moveState.x = event.clientX; |
654 | 656 | moveState.y = event.clientY; |
655 | 657 | moveState.moving = true; |
| 658 | + moveState.pointerId = event.pointerId; |
656 | 659 | styles.replaceSync(` |
657 | 660 | ::view-transition-group(element) { |
658 | 661 | top: 0; |
|
670 | 673 | } |
671 | 674 |
|
672 | 675 | function stopMove(event: PointerEvent) { |
673 | | - if (event.target !== document.documentElement) return; |
| 676 | + if (!moveState.moving || event.pointerId !== moveState.pointerId) return; |
674 | 677 | moveState.moving = false; |
| 678 | + moveState.pointerId = -1; |
675 | 679 | const current = levelState.elements.length - 1; |
676 | 680 | const node = levelState.elements[current]!; |
677 | 681 | if ( |
|
755 | 759 | } |
756 | 760 |
|
757 | 761 | function move(event: PointerEvent) { |
758 | | - if (!moveState.moving) return; |
| 762 | + if (!moveState.moving || event.pointerId !== moveState.pointerId) return; |
759 | 763 |
|
760 | 764 | const width = chambers[0]!.getBoundingClientRect().width; |
761 | 765 | const quarter = width / 4; |
|
0 commit comments