three打造捕捉游戏
代码语言:html
所属分类:游戏
代码描述:three打造捕捉游戏,点击左键跳过障碍物
代码标签: 游戏
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <style> @import url("https://fonts.googleapis.com/css?family=Voltaire"); #world { position: absolute; width: 100%; height: 100%; background-color: #dbe6e6; overflow: hidden; } #gameoverInstructions { position: absolute; font-family: 'Voltaire', sans-serif; font-weight: bold; text-transform: uppercase; font-size: 120px; text-align: center; color: #ffc5a2; opacity: 0; left: 50%; top: 50%; width: 100%; -webkit-transform: translate(-50%, -100%); transform: translate(-50%, -100%); -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-transition: all 500ms ease-in-out; transition: all 500ms ease-in-out; } #gameoverInstructions.show { opacity: 1; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); -webkit-transition: all 500ms ease-in-out; transition: all 500ms ease-in-out; } #dist { position: absolute; left: 50%; top: 50px; -webkit-transform: translate(-50%, 0%); transform: translate(-50%, 0%); -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .label { position: relative; font-family: 'Voltaire', sans-serif; text-transform: uppercase; color: #ffa873; font-size: 12px; letter-spacing: 2px; text-align: center; margin-bottom: 5px; } #distValue { position: relative; text-transform: uppercase; color: #dc5f45; font-size: 40px; font-family: 'Voltaire'; text-align: center; } #credits { position: absolute; width: 100%; margin: auto; bottom: 0; margin-bottom: 20px; font-family: 'Voltaire', sans-serif; color: #544027; font-size: 12px; letter-spacing: 0.5px; text-transform: uppercase; text-align: center; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } #credits a { color: #544027; } #credits a:hover { color: #dc5f45; } #instructions { position: absolute; width: 100%; bottom: 0; margin: auto; margin-bottom: 50px; font-family: 'Voltaire', sans-serif; color: #dc5f45; font-size: 16px; letter-spacing: 1px; text-transform: uppercase; text-align: center; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .lightInstructions { color: #5f9042; } </style> </head> <body translate="no"> <div id="world" /> <div id="gameoverInstructions"> Game Over </div> <div id="dist"> <div class="label">distance</div> <div id="distValue">000</div> </div> <div id="instructions">Click to jump<span class="lightInstructions"> — Grab the carrots / avoid the hedgehogs</span></div> <script type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/three.js"></script> <script src='http://repo.bfw.wiki/bfwrepo/js/TweenMax.min.js'></script> <script src='http://repo.bfw.wiki/bfwrepo/js/OrbitControls.js'></script> <script > //THREEJS RELATED VARIABLES var scene, camera, fieldOfView, aspectRatio, nearPlane, farPlane, gobalLight, shadowLight, backLight, renderer, container, controls, clock; var delta = 0; var floorRadius = 200; var speed = 6; var distance = 0; var level = 1; var levelInterval; var levelUpdateFreq = 3000; var initSpeed = 5; var maxSpeed = 48; var monsterPos = .65; var monsterPosTarget = .65; var floorRotation = 0; var collisionObstacle = 10; var collisionBonus = 20; var gameStatus = "play"; var cameraPosGame = 160; var cameraPosGameOver = 260; var monsterAcceleration = 0.004; var malusClearColor = 0xb44b39; var malusClearAlpha = 0; var audio = new Audio('http://repo.bfw.wiki/bfwrepo/sound/5e9e3ec279c9a.mp3'); var fieldGameOver, fieldDistance; //SCREEN & MOUSE VARIABLES var HEIGHT,WIDTH,windowHalfX,windowHalfY, mousePos = { x: 0, y: 0 }; //3D OBJECTS VARIABLES var hero; // Materials var blackMat = new THREE.MeshPhongMaterial({ color: 0x100707, shading: THREE.FlatShading }); var brownMat = new THREE.MeshPhongMaterial({ color: 0xb44b39, shininess: 0, shading: THREE.FlatShading }); var greenMat = new THREE.MeshPhongMaterial({ color: 0x7abf8e, shininess: 0, shading: THREE.FlatShading }); var pinkMat = new THREE.MeshPhongMaterial({ color: 0xdc5f45, //0xb43b29,//0xff5b49, shininess: 0, shading: THREE.FlatShading }); var lightBrownMat = new THREE.MeshPhongMaterial({ color: 0xe07a57, shading: THREE.FlatShading }); var whiteMat = new THREE.MeshPhongMaterial({ color: 0xa49789, shading: THREE.FlatShading }); var skinMat = new THREE.MeshPhongMaterial({ color: 0xff9ea5, shading: THREE.FlatShading }); // OTHER VARIABLES var PI = Math.PI; //INIT THREE JS, SCREEN AND MOUSE EVENTS function initScreenAnd3D() { HEIGHT = window.innerHeight; WIDTH = window.innerWidth; windowHalfX = WIDTH / 2; windowHalfY = HEIGHT / 2; scene = new THREE.Scene(); scene.fog = new THREE.Fog(0xd6eae6, 160, 350); aspectRatio = WIDTH / HEIGHT; fieldOfView = 50; nearPlane = 1; farPlane = 2000; camera = new THREE.PerspectiveCamera( fieldOfView, aspectRatio, nearPlane, farPlane); camera.position.x = 0; camera.position.z = cameraPosGame; camera.position.y = 30; camera.lookAt(new THREE.Vector3(0, 30, 0)); renderer = new THREE.WebGLRenderer({ alpha: true, antialias: true }); renderer.setPixelRatio(window.devicePixelRatio); renderer.setClearColor(malusClearColor, malusClearAlpha); renderer.setSize(WIDTH, HEIGHT); renderer.shadowMap.enabled = true; container = document.getElementById('world'); container.appendChild(renderer.domElement); window.addEventListener('resize', handleWindowResize, false); document.addEventListener('mousedown', handleMouseDown, false); document.addEventListener("touchend", handleMouseDown, false); /* controls = new THREE.OrbitControls(camera, renderer.domElement); //controls.minPolarAngle = -Math.PI / 2; //controls.maxPolarAngle = Math.PI / 2; //controls.noZoom = true; controls.noPan = true; //*/ clock = new THREE.Clock(); } function handleWindowResize() { HEIGHT = window.innerHeight; WIDTH = window.innerWidth; windowHalfX = WIDTH / 2; windowHalfY = HEIGHT / 2; renderer.setSize(WIDTH, HEIGHT); camera.aspect = WIDTH / HEIGHT; camera.updateProjectionMatrix(); } function handleMouseDown(event) { if (gameStatus == "play") hero.jump();else if (gameStatus == "readyToReplay") { replay(); } } functi.........完整代码请登录后点击上方下载按钮下载查看
网友评论0