@c-frame/physx
Version:
Physics for A-Frame using Nvidia PhysX
52 lines (50 loc) • 2.74 kB
HTML
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no,user-scalable=no,maximum-scale=1">
<title>Examples • Sweeper PhysX</title>
<script src="https://aframe.io/releases/1.7.0/aframe.min.js"></script>
<script src="https://unpkg.com/aframe-environment-component@1.5.0/dist/aframe-environment-component.min.js"></script>
<script src="../../dist/physx.js"></script>
<script src="../components/grab.js"></script>
<script src="../components/rain-of-entities.js"></script>
<script src="../components/force-pushable.js"></script>
<link rel="stylesheet" href="../../styles.css">
</head>
<body>
<div class="text-overlay">
<p>Blocks fall at random from the sky. The sweeper wall sweeps them away.</p>
</div>
<a class="code-link"
target="_blank"
href="https://github.com/c-frame/physx/blob/main/examples/sweeper/index.html">
view code
</a>
<a-scene environment
rain-of-entities="components: height|0.2, width|0.2, depth|0.2, physx-body, physx-force-pushable, color|#39BB82; spread: 3"
physx="autoLoad: true; delay: 1000; useDefaultScene: false;stats: panel">
<!-- worker version (sweeper not working):
physics="driver: worker; workerFps: 60; workerInterpolate: true; workerInterpBufferSize: 2;"-->
<!-- Player -->
<a-entity camera wasd-controls look-controls position="0 0.6 0">
<a-entity cursor
raycaster="objects:[physx-force-pushable]"
position="0 0 -0.5"
geometry="primitive: circle; radius: 0.01; segments: 4;"
material="color: #FF4444; shader: flat"></a-entity>
</a-entity>
<a-entity id="left-hand" ammo-body="type: kinematic; emitCollisionEvents: true" ammo-shape="type: sphere; fit: manual; sphereRadius: 0.02;"
hand-controls="hand: left" grab></a-entity>
<a-entity id="right-hand" ammo-body="type: kinematic; emitCollisionEvents: true" ammo-shape="type: sphere; fit: manual; sphereRadius: 0.02;"
hand-controls="hand: right" grab></a-entity>
<!-- Terrain -->
<a-box width="75" height="0.1" depth="75" physx-body="type: static" visible="false"></a-box>
<!-- Sweeper -->
<a-box width="20" height="1" depth="1"
animation="property: position; from: 0 0.5 25; to: 0 0.5 -75; dur: 50000; loop: true; easing: linear"
material="color: red; opacity: 0.5"
physx-body="type: kinematic"></a-box>
</a-scene>
</body>
</html>