JSFiddle - React, Tailwind, and code Playground
by Paul West
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/92/three.min.js"></script>
CSS
body {
overflow: hidden;
margin: 0;
}
JavaScript
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 1, 1000);
var renderer = new THREE.WebGLRenderer({
antialias: true
});
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
var box = new THREE.Mesh(new THREE.BoxGeometry(100, 100, 100, 10, 10, 10), new THREE.MeshBasicMaterial({
color: "gray",
wireframe: true
}));
box.geometry.translate(0, 50, 0);
scene.add(box);
var speedTrans = 20;
var speedRot = THREE.Math.degToRad(45);
var clock = new THREE.Clock();
var delta = 0;
var camHolder = new THREE.Group();
camHolder.add(camera);
camHolder.position.set(0, 10, 20);
scene.add(camHolder);
var keyCode = -1;
function moveCamHolder() {
console.log(keyCode);
if (keyCode === 87) {
camHolder.translateZ(-speedTrans * delta);
} // w fast vorward
if (keyCode === 83) {
camHolder.translateZ(speedTrans * delta);
} // s backward a little slower
if (keyCode === 65) {
camHolder.translateX(-speedTrans * delta);
} // a slowly leftwards
if (keyCode === 68) {
camHolder.translateX(speedTrans * delta);
} // d slowly rightwards
if (keyCode === 76) {
camHolder.rotateY(speedRot * delta);
} // l turn to the left
if (keyCode === 82) {
camHolder.rotateY(-speedRot * delta);
} // r turn to the right
if (keyCode === 84) {
camHolder.translateY(speedTrans * delta);
} // t upstretch
if (keyCode === 66) {
camHolder.translateY(-speedTrans * delta);
} // b bend down
if (keyCode === 38) {
camera.rotation.x += speedRot * delta;
} // up arrow, looking higher
if (keyCode === 40) {
camera.rotation.x += -speedRot * delta;
} // down arrow, looking deeper
}
document.addEventListener('keydown', function(evt) {
keyCode = evt.keyCode;
});
document.addEventListener('keyup', function() {
keyCode = -1;
});
render();
function render() {
requestAnimationFrame(render);
delta = clock.getDelta();
if...