cannon+three打造一个三维小球重力下滑滑滑梯效果代码
代码语言:html
所属分类:三维
代码描述:cannon+three打造一个三维小球重力下滑滑滑梯效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> :root { --tp-base-background-color: hsla(0, 0%, 40%, 1.00); --tp-base-shadow-color: hsla(0, 0%, 0%, 0.2); --tp-button-background-color: hsla(0, 0%, 100%, 1.00); --tp-button-background-color-active: hsla(0, 0%, 85%, 1.00); --tp-button-background-color-focus: hsla(0, 0%, 90%, 1.00); --tp-button-background-color-hover: hsla(0, 0%, 95%, 1.00); --tp-button-foreground-color: hsla(230, 20%, 11%, 1.00); --tp-container-background-color: hsla(0, 0%, 0%, 0.20); --tp-container-background-color-active: hsla(0, 0%, 0%, 0.35); --tp-container-background-color-focus: hsla(0, 0%, 0%, 0.30); --tp-container-background-color-hover: hsla(0, 0%, 0%, 0.25); --tp-container-foreground-color: hsla(0, 0%, 100%, 0.90); --tp-groove-foreground-color: hsla(0, 0%, 0%, 0.50); --tp-input-background-color: hsla(0, 0%, 0%, 0.50); --tp-input-background-color-active: hsla(0, 0%, 0%, 0.65); --tp-input-background-color-focus: hsla(0, 0%, 0%, 0.60); --tp-input-background-color-hover: hsla(0, 0%, 0%, 0.55); --tp-input-foreground-color: hsla(0, 0%, 100%, 0.90); --tp-label-foreground-color: hsla(0, 0%, 100%, 0.90); --tp-monitor-background-color: hsla(0, 0%, 0%, 0.50); --tp-monitor-foreground-color: hsla(0, 0%, 100%, 0.50); } html { font-family: 'Dosis', Arial, sans-serif; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; } *, *::after, *::before { box-sizing: border-box; } body { padding: 0; margin: 0; background-color: #1c7dff; overflow: hidden; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; cursor: -moz-grabg; cursor: -webkit-grab; } .credits { position: absolute; z-index: 1; bottom: 0; width: auto; background-color: #07326b; padding: 10px; cursor: pointer; font-size: 8pt; font-weight: lighter; } .credits a { color: #ffffff; text-decoration: none; } .credits h1 { margin: inherit; } .credits:hover { background-color: #ff1111; color: #ffffff; } </style> <style> html { font-family: "Dosis", Arial, sans-serif; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; } .stats { position: absolute; z-index: 1; top: 0; left: 0; } </style> </head> <body> <div class="stats"> </div> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/Stats-16.js"></script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/cannon.js"></script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/three.126.js"></script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/OrbitControls.126.js"></script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/TransformControls.js"></script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/gsap.3.5.2.js"></script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/tweakpane.3.02.js"></script> <script > class App { init() { this.setup(); this.createScene(); this.createCamera(); this.addCameraControls(); this.addAmbientLight(); this.addDirectionalLight(); this.addPhysicsWorld(); this.addBackWall(); this.addFloor(); this.addWoodColumns(); this.addRows(); this.addEdges(); this.addSphere(); this.addFloorBox(); this.addStatsMonitor(); this.addWindowListeners(); this.addGuiControls(); this.addDummyCameraTarget(); this.animateDummyCameraTarget(); this.animate(); } setup() { this.debug = false; this.width = window.innerWidth; this.height = window.innerHeight; this.cameraAutoAnimate = false; this.spheres = []; Sphere.loadTextures(); Sphere.buildMaterial(); Column.buildMaterial(); Row.buildMaterial(); } createScene() { this.scene = new THREE.Scene(); this.scene.background = new THREE.Color( window.getComputedStyle(document.body).backgroundColor); this.renderer = new THREE.WebGLRenderer({ antialias: true }); this.renderer.setSize(this.width, this.height); this.scene.position.set(0, -5, 0); this.renderer.shadowMap.enabled = true; this.renderer.shadowMap.type = THREE.PCFSoftShadowMap; document.body.appendChild(this.renderer.domElement); } createCamera() { this.camera = new THREE.PerspectiveCamera( 20, this.width / this.height, 1, 1000); this.camera.position.set(20, 20, 80); this.scene.add(this.camera); } addCameraControls() { this.orbitControl = new THREE.OrbitControls( this.camera, this.renderer.domElement); this.orbitControl.minPolarAngle = THREE.MathUtils.degToRad(0); this.orbitControl.maxPolarAngle = THREE.MathUtils.degToRad(90); this.orbitControl.minAzimuthAngle = THREE.MathUtils.degToRad(-50); this.orbitControl.maxAzimuthAngle = THREE.MathUtils.degToRad(50); this.orbitControl.maxDistance = 90; this.orbitControl.minDistance = 40; this.orbitControl.enableDamping = true; this.orbitControl.dampingFactor = 0.02; this.orbitControl.enablePan = !this.cameraAutoAnimate; this.orbitC.........完整代码请登录后点击上方下载按钮下载查看
网友评论0