[ts][player] Update physics example.

This commit is contained in:
Mario Zechner 2023-12-06 03:18:31 +01:00
parent a49de250ed
commit 1c4aa3ccb0
4 changed files with 154 additions and 6 deletions

148
spine-ts/index.css Normal file
View File

@ -0,0 +1,148 @@
/***
The new CSS reset - version 1.11.2 (last updated 15.11.2023)
GitHub page: https://github.com/elad2412/the-new-css-reset
***/
/*
Remove all the styles of the "User-Agent-Stylesheet", except for the 'display' property
- The "symbol *" part is to solve Firefox SVG sprite bug
- The "html" element is excluded, otherwise a bug in Chrome breaks the CSS hyphens property (https://github.com/elad2412/the-new-css-reset/issues/36)
*/
*:where(:not(html, iframe, canvas, img, svg, video, audio):not(svg *, symbol *)) {
all: unset;
display: revert;
}
/* Preferred box-sizing value */
*,
*::before,
*::after {
box-sizing: border-box;
}
/* Fix mobile Safari increase font-size on landscape mode */
html {
-moz-text-size-adjust: none;
-webkit-text-size-adjust: none;
text-size-adjust: none;
}
/* Reapply the pointer cursor for anchor tags */
a, button {
cursor: revert;
}
/* Remove list styles (bullets/numbers) */
ol, ul, menu, summary {
list-style: none;
}
/* For images to not be able to exceed their container */
img {
max-inline-size: 100%;
max-block-size: 100%;
}
/* removes spacing between cells in tables */
table {
border-collapse: collapse;
}
/* Safari - solving issue when using user-select:none on the <body> text input doesn't working */
input, textarea {
-webkit-user-select: auto;
}
/* revert the 'white-space' property for textarea elements on Safari */
textarea {
white-space: revert;
}
/* minimum style to allow to style meter element */
meter {
-webkit-appearance: revert;
appearance: revert;
}
/* preformatted text - use only for this feature */
:where(pre) {
all: revert;
box-sizing: border-box;
}
/* reset default text opacity of input placeholder */
::placeholder {
color: unset;
}
/* fix the feature of 'hidden' attribute.
display:revert; revert to element instead of attribute */
:where([hidden]) {
display: none;
}
/* revert for bug in Chromium browsers
- fix for the content editable attribute will work properly.
- webkit-user-select: auto; added for Safari in case of using user-select:none on wrapper element*/
:where([contenteditable]:not([contenteditable="false"])) {
-moz-user-modify: read-write;
-webkit-user-modify: read-write;
overflow-wrap: break-word;
-webkit-line-break: after-white-space;
-webkit-user-select: auto;
}
/* apply back the draggable feature - exist only in Chromium and Safari */
:where([draggable="true"]) {
-webkit-user-drag: element;
}
/* Revert Modal native behavior */
:where(dialog:modal) {
all: revert;
box-sizing: border-box;
}
/* Remove details summary webkit styles */
::-webkit-details-marker {
display: none;
}
html, body {
margin: 0;
padding: 0;
font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif;
}
* {
box-sizing: border-box;
}
.btn {
display: inline-block; /* Aligns like a button */
padding: 0.125em 0.5em; /* Button size */
color: #333; /* Text color */
background-color: #ccc;
border: none; /* No border */
border-radius: 5px; /* Rounded corners */
text-align: center; /* Center text */
text-decoration: none; /* No underline */
cursor: pointer; /* Cursor changes to hand symbol */
transition: background-color 0.3s, box-shadow 0.3s; /* Smooth transition for hover effect */
/* Slight shadow for depth (optional) */
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
/* Hover state */
.btn:hover {
background-color: #fff; /* Darker shade when hovered */
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* Larger shadow on hover */
}
.overlay {
display: flex; flex-direction: column; position: fixed; z-index: 10; top: 0; left: 0; gap: 0.5em; padding: 1em;
background-color: rgba(0, 0, 0, 0.7);
color: #ddd;
border-radius: 5px;
}

View File

@ -98,6 +98,7 @@
<li>Player</li> <li>Player</li>
<ul> <ul>
<li><a href="/spine-player/example/example.html">Example</a></li> <li><a href="/spine-player/example/example.html">Example</a></li>
<li><a href="/spine-player/example/physics.html">Physics</a></li>
<li> <li>
<a href="/spine-player/example/embedding-binary-example.html" <a href="/spine-player/example/embedding-binary-example.html"
>Embedding binary</a >Embedding binary</a

View File

@ -5,8 +5,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="../dist/iife/spine-player.js"></script> <script src="../dist/iife/spine-player.js"></script>
<link rel="stylesheet" href="../dist/spine-player.css"> <link rel="stylesheet" href="../dist/spine-player.css">
<link rel="stylesheet" href="../../index.css">
</head> </head>
<body style="margin:0"> <body style="margin:0">
<span class="overlay">Drag the swinging lady</span>
<div id="player" style="position: absolute; width: 100%; height: 100vh;"> <div id="player" style="position: absolute; width: 100%; height: 100vh;">
</div> </div>
<script> <script>
@ -28,12 +30,9 @@
player.skeleton.getRootBone().x += mouse.x - last.x; player.skeleton.getRootBone().x += mouse.x - last.x;
player.skeleton.getRootBone().y += mouse.y - last.y; player.skeleton.getRootBone().y += mouse.y - last.y;
last.setFrom(mouse); last.setFrom(mouse);
} },
up: () => player.paused = false
}); });
}, },
frame: function (player, delta) {
player.skeleton.update(player.time.delta);
player.skeleton.updateWorldTransform(spine.Physics.update);
}
});</script> });</script>
</body></html> </body></html>

View File

@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head> </head>
<script src="../dist/iife/spine-webgl.js"></script> <script src="../dist/iife/spine-webgl.js"></script>
<link rel="stylesheet" href="example.css"> <link rel="stylesheet" href="../../index.css">
<body> <body>
<div class="overlay" style="user-select: none;"> <div class="overlay" style="user-select: none;">