three实现三维过山车场景动画代码
代码语言:html
所属分类:三维
代码描述:three实现三维过山车场景动画代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>3D 过山车模拟</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { overflow: hidden; background: #000; font-family: Arial, sans-serif; }
canvas { display: block; }
#info {
position: absolute;
top: 10px;
left: 10px;
color: #fff;
background: rgba(0,0,0,0.6);
padding: 15px 20px;
border-radius: 10px;
font-size: 14px;
z-index: 10;
}
#info h2 { margin-bottom: 8px; color: #ff6b35; }
#controls {
position: absolute;
bottom: 20px;
left: 50%;
transform: translateX(-50%);
display: flex;
gap: 10px;
z-index: 10;
}
.btn {
padding: 10px 25px;
border: none;
border-radius: 25px;
font-size: 14px;
cursor: pointer;
transition: all 0.3s;
font-weight: bold;
}
.btn:hover { transform: scale(1.05); }
.btn-start { background: #ff6b35; color: #fff; }
.btn-view { background: #4ecdc4; color: #fff; }
.btn-speed { background: #ffe66d; color: #333; }
#speed-display {
position: absolute;
top: 10px;
right: 10px;
color: #fff;
background: rgba(0,0,0,0.6);
padding: 15px 20px;
border-radius: 10px;
font-size: 18px;
z-index: 10;
}
#speed-display span { color: #ff6b35; font-size: 28px; font-weight: bold; }
</style>
</head>
<body>
<div id="info">
<h2>🎢 3D 过山车模拟</h2>
<div>切换视角体验不同的乘坐感受</div>
</div>
<div id="speed-display">
速度: <span id="speed-val">0</span> km/h
</div>
<div id="controls">
<button class="btn btn-start" onclick="togglePause()">暂停 / 继续</button>
<button class="btn btn-view" onclick="switchView()">切换视角</button>
<button class="btn btn-speed" onclick="changeSpeed()">变速</button>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
<script>
let scene, camera, renderer;
let trackCurve, cart, track;
let t = 0, speed = 0.0004, paused = false;
let viewMode = 0; // 0: first person, 1: third person, 2: side, 3: overview
let speedMultiplier = 1;
let supports = [];
let trees = [];
let clouds = [];
let starField;
let cartGroup;
let wheelRotation = 0;
init();
animate();
function init() {
// Scene
scene = new THREE.Scene();
scene.fog = new THREE.FogExp2(0x1a0a2e, 0.003);
// Camera
camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 2000);
// Renderer
renderer = new THRE.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0