three实现一个三维场景带音效射击示例代码

代码语言:html

所属分类:三维

代码描述:three实现一个三维场景带音效射击示例代码

代码标签: three 三维 场景 音效 射击 示例 代码

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

<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8"/>
<title>Three.js FPS Demo</title>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<style>
  html,body{margin:0;height:100%;background:#0b0e13;overflow:hidden;font-family:system-ui,Segoe UI,Roboto}
  #overlay{
    position:fixed;inset:0;display:flex;align-items:center;justify-content:center;
    color:#d9e3ff;background:radial-gradient(1200px 800px at 70% 20%,#0f1423 0%,#090c16 60%,#05070c 100%);
    cursor:pointer;user-select:none
  }
  #overlay .card{
    text-align:center;padding:22px 28px;border-radius:14px;background:rgba(255,255,255,.04);
    backdrop-filter: blur(6px);box-shadow:0 20px 60px rgba(0,0,0,.4)
  }
  #overlay h1{margin:0 0 10px;font-size:20px}
  #overlay p{margin:6px 0;opacity:.8}
  #hud{
    position:fixed;left:16px;top:12px;color:#a9b7ff;font-size:14px;line-height:1.25;pointer-events:none
  }
  #crosshair{
    position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none
  }
  #crosshair::before,#crosshair::after{
    content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
    width:18px;height:2px;background:#cfe1ff;border-radius:2px;box-shadow:0 0 8px rgba(120,180,255,.7)
  }
  #crosshair::after{transform:translate(-50%,-50%) rotate(90deg)}
  canvas{display:block}
</style>
</head>
<body>
<div id="overlay">
  <div class="card">
    <h1>FPS 射击 Demo</h1>
    <p>W/A/S/D 移动 · 鼠标观察 · Space 跳跃 · Shift 冲刺</p>
    <p>左键射击目标方块,看看你能得多少分!</p>
    <p style="opacity:.7">点击任意位置开始</p>
  </div>
</div>
<div id="hud">Score: <span id="score">0</span><br/>Ammo: ∞</div>
<div id="crosshair"></div>
<script type="importmap">
{
 "imports":{
    "three":"//repo.bfw.wiki/bfwrepo/js/module/three/build/164/three.module.js",
    "three/addons/":"//repo.bfw.wiki/bfwrepo/js/module/three/examples/164/jsm/"
 }
}
</script>
<script type="module">
import * as THREE from 'three';
import { PointerLockControls } from 'three/addons/controls/PointerLockControls.js';
let prevTime = performance.now();
let scene, camera, renderer, controls;
let listener, audioCtx;
let moveForward=false, moveBackward=false, moveLeft=false, moveRight=false, canJump=false, sprint=false;
let velocity = new THREE.Vector3();
let direction = new THREE.Vector3();
let scor.........完整代码请登录后点击上方下载按钮下载查看

网友评论0