three实现第一人称射击游戏效果
代码语言:html
所属分类:游戏
代码描述:three实现第一人称射击游戏效果
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <style> #instructions { width: 100%; height: 100%; user-select: none; text-shadow: 1px 1px 1px #9E9E9E; position: absolute; width: 100%; height: 100%; background-color: rgba(0,0,0,0.5); display: -webkit-box; display: -moz-box; display: box; -webkit-box-orient: horizontal; -moz-box-orient: horizontal; box-orient: horizontal; -webkit-box-pack: center; -moz-box-pack: center; box-pack: center; -webkit-box-align: center; -moz-box-align: center; box-align: center; color: #ffffff; text-align: center; font-family: Arial; font-size: 14px; line-height: 24px; cursor: pointer; } </style> </head> <body translate="no"> <body style="margin: 0;"> <div id="instructions"> <div> <h1>点击开始</h1> 射击:单击鼠标左键<br /> 移动: 键盘W-A-S-D 或者 箭头<br /> 跑: SHIFT键<br /> 跳跃: 空格键<br /> 看: 移动鼠标 退出:esc键 </div> </div> <script type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/three.r118.js"></script> <script type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/dat.gui-min.js"></script> <script> THREE.FirstPersonControls = function ( camera, MouseMoveSensitivity = 0.002, speed = 800.0, jumpHeight = 350.0, height = 30.0) { var scope = this; scope.MouseMoveSensitivity = MouseMoveSensitivity; scope.speed = speed; scope.height = height; scope.jumpHeight = scope.height + jumpHeight; var moveForward = false; var moveBackward = false; var moveLeft = false; var moveRight = false; var canJump = false; var run = false; var velocity = new THREE.Vector3(); var direction = new THREE.Vector3(); var prevTime = performance.now(); camera.rotation.set( 0, 0, 0 ); var pitchObject = new THREE.Object3D(); pitchObject.add( camera ); var yawObject = new THREE.Object3D(); yawObject.position.y = 10; yawObject.add( pitchObject ); var PI_2 = Math.PI / 2; var onMouseMove = function ( event ) { if ( scope.enabled === false ) return; var movementX = event.movementX || event.mozMovementX || event.webkitMovementX || 0; var movementY = event.movementY || event.mozMovementY || event.webkitMovementY || 0; yawObject.rotation.y -= movementX * MouseMoveSensitivity; pitchObject.rotation.x -= movementY * MouseMoveSensitivity; pitchObject.rotation.x = Math.max( - PI_2, Math.min( PI_2, pitchObject.rotation.x ) ); }; var onKeyDown = (function ( event ) { if ( sc.........完整代码请登录后点击上方下载按钮下载查看
网友评论0