three实现三维立方体盒子内粒子重力滚动动画效果代码

代码语言:html

所属分类:三维

代码描述:three实现三维立方体盒子内粒子重力滚动动画效果代码

代码标签: three 三维 立方体 盒子 粒子 重力 滚动 动画

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>
 
<meta charset="UTF-8">
 

 
 
 
<style>
html
, body {
   
padding: 0;
   
margin: 0;
}

.container {
   
position: fixed;
   
top: 0;
   
left: 0;
   
width: 100%;
   
height: 100vh;
}
</style>

 
 
 
</head>

<body >
 
<div class="container">
   
<canvas id="canvas"></canvas>
</div>

<script type="importmap">{
       
"imports": {
               
"three": "https://cdnjs.cloudflare.com/ajax/libs/three.js/0.145.0/three.module.min.js",
               
"three/addons/": "https://threejs.org/examples/jsm/"
       
}
}
</script>
<script async src="https://unpkg.com/es-module-shims@1.6.3/dist/es-module-shims.js"></script>
 
     
<script type="module">
import * as CANNON from "https://cdn.skypack.dev/cannon-es";
import * as THREE from "three";
import { OrbitControls } from "three/addons/controls/OrbitControls.js";
import { RoundedBoxGeometry } from "three/addons/geometries/RoundedBoxGeometry.js";

const canvasEl = document.querySelector("#canvas");
const containerEl = document.querySelector(".container");

let renderer,scene,camera,orbit,physicsWorld,boxMaterial,dummy,instancedBoxesMesh,boxesBodies = [];

const params = {
  boxesNumber: 100,
  boxSize: .03,
  containerSize: 1,
  gravity: 10 };


initPhysics();
initScene();
throwBoxes();

boxMaterial.visible = true;
render();

window.addEventListener("resize", updateSceneSize);
containerEl.addEventListener("dblclick", throwBoxes);

function initScene() {
  renderer = new THREE.WebGLRenderer({
    antialias: true,
    canvas.........完整代码请登录后点击上方下载按钮下载查看

网友评论0