game_hw0_v2
load a scene
by otorineko6790
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/84/three.min.js"></script>
<script src="https://threejs.org/examples/js/controls/OrbitControls.js">
</script>
<div id='info'>
homework0
</div>
CSS
#info {
top: 5%;
position: absolute;
color: yellow;
text-align: center;
width: 100%;
}
body {
overflow: hidden
}
JavaScript
var scene, renderer, camera;
var controls;
var toytrain;
var bumpMap;
var clock = new THREE.Clock();
var turn = true;
var angle = -Math.PI / 2;
var train, rail, trainx = 0,
trainz;
var loader = new THREE.TextureLoader();
loader.setCrossOrigin('');
var setTexture = loader.load("https://raw.githubusercontent.com/otorineko6790/computerGraphicFst/8e522bd285aae9492c6d88e77ae20657367a259f/rails.png");
init();
animate();
function setRail() {
let leftRail = URail();
let rightRail = URail();
let nlRail = strRail();
let nrRail = strRail();
let slRail = strRail();
let srRail = strRail();
scene.add(leftRail);
leftRail.rotation.z = Math.PI / 2;
leftRail.position.set(-80, 0, 0);
scene.add(rightRail);
rightRail.rotation.z = -Math.PI / 2;
rightRail.position.set(75, 0, 0);
scene.add(nrRail);
nrRail.position.set(0, 1, -35);
scene.add(nlRail);
nlRail.position.set(-80, 1, -35);
scene.add(srRail);
srRail.position.set(0, 1, 75);
scene.add(slRail);
slRail.position.set(-80, 1, 75);
}
function buildTrain(){
let trainObj = new THREE.Object3D();
let setTexture = loader.load("https://raw.githubusercontent.com/otorineko6790/computerGraphicFst/master/159127.jpg");
let material = new THREE.MeshBasicMaterial({map: setTexture});
let body = new THREE.Mesh(new THREE.BoxGeometry(50, 20, 20), material);
trainObj.add(body);
body.position.y = 10;
let chimney = new THREE.Mesh( new THREE.CylinderGeometry( 5, 5, 20, 30 ), material );
trainObj.add( chimney );
chimney.position.set(10, 30, 0);
let head = new THREE.Mesh( new THREE.CylinderGeometry( 9, 9, 40, 30 ), material );
trainObj.add( head );
head.position.set(0, 25, 0);
head.rotation.z = -Math.PI/2;
return trainObj;
}
/*
function rPix(i){
let x = 0.06, y = 0.08;
let xmin = x*i, xmax = x*(i+1), ymin = 0, ymax = y;
if(i/10 >= 1){
xmin = x*(i%10-1);
xmax = x*(i%10);
ymin = y*(i/10);
ymax = y*(i/10+1);
}
let rail = [
new...