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...