GameProgramming HW1

by Alvin Chen

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r70/three.min.js"></script>
<script src="https://dl.dropboxusercontent.com/u/3587259/Code/Threejs/OrbitControls.js"></script>
<div id='info'>
</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 angle=0;
init();
animate();

function init()
{
	var width = window.innerWidth;
	var height = window.innerHeight;

	renderer = new THREE.WebGLRenderer({antialias: true});
	renderer.setSize (width, height);
	renderer.setClearColor (0x888888);
	document.body.appendChild (renderer.domElement);

	scene = new THREE.Scene();

	camera = new THREE.PerspectiveCamera (45, width/height, 1, 10000);
	camera.position.y = 48;
	camera.position.z = 120;
	camera.lookAt (new THREE.Vector3(0,0,0));

	controls = new THREE.OrbitControls (camera, renderer.domElement);
  
  var gridXZ = new THREE.GridHelper(100, 10);
	gridXZ.setColors( new THREE.Color(0xff0000), new THREE.Color(0xffffff) );
	scene.add(gridXZ);

	var pointLight = new THREE.PointLight (0xffffff);
	pointLight.position.set (0,300,200);
	scene.add (pointLight);

	var ambientLight = new THREE.AmbientLight (0x111111);
	scene.add(ambientLight);
	infield = new THREE.Mesh(new THREE.BoxGeometry(274.3, 0.1, 274.3), new THREE.MeshBasicMaterial({
    color: 0x00ff00
  }));
  
  
  
  toytrain = new THREE.Mesh(new THREE.BoxGeometry(5, 5, 12), new THREE.MeshBasicMaterial({
    color: 0x00aaff
  }));
  
  THREE.ImageUtils.crossOrigin = ''; 
  number = new THREE.Mesh(new THREE.PlaneGeometry(3.5, 3.5, 30), new THREE.MeshBasicMaterial({side:THREE.DoubleSide,map: THREE.ImageUtils.loadTexture('https://i.imgur.com/YfOYKbI.jpg')}));
  number.rotation.y=Math.PI/2;
  number.position.set(2.6,0,0);
  toytrain.add(number);
  
  number2 = number.clone();
  number2.rotation.y=-Math.PI/2;
  number2.position.set(-2.6,0,0);
  toytrain.add(number2);
  
  line = new THREE.Mesh(new THREE.BoxGeometry(0.5, 0.5, 12), new THREE.MeshBasicMaterial({
    color: 0x000000
  }));
  line.position.set(2.3,2.5,0);
  toytrain.add(line);
  
  line2 = line.clone();
  line2.position.set(-2.3,2.5,0);
  toytrain.add(line2);
  
  line3 = new THREE.Mesh(new...