physics.html 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <script src="../dist/iife/spine-player.js"></script>
  7. <link rel="stylesheet" href="../dist/spine-player.css" />
  8. <link rel="stylesheet" href="../../index.css" />
  9. </head>
  10. <body style="margin: 0">
  11. <span class="overlay">Drag the swinging lady</span>
  12. <div id="player" style="width: 100%; height: 100vh"></div>
  13. <script>
  14. var mouse = new spine.Vector3(),
  15. last = new spine.Vector3();
  16. new spine.SpinePlayer("player", {
  17. skelUrl: "assets/celestial-circus-pro.skel",
  18. atlasUrl: "assets/celestial-circus-pma.atlas",
  19. showControls: true,
  20. animation: "swing",
  21. success: (player) => {
  22. new spine.Input(player.canvas).addListener({
  23. down: (x, y) => {
  24. player.sceneRenderer.camera.screenToWorld(
  25. mouse.set(x, y, 0),
  26. player.canvas.clientWidth,
  27. player.canvas.clientHeight
  28. );
  29. last.setFrom(mouse);
  30. },
  31. dragged: (x, y) => {
  32. player.sceneRenderer.camera.screenToWorld(
  33. mouse.set(x, y, 0),
  34. player.canvas.clientWidth,
  35. player.canvas.clientHeight
  36. );
  37. player.skeleton.getRootBone().x += mouse.x - last.x;
  38. player.skeleton.getRootBone().y += mouse.y - last.y;
  39. last.setFrom(mouse);
  40. },
  41. up: () => (player.paused = false),
  42. });
  43. },
  44. });
  45. </script>
  46. </body>
  47. </html>