GAME HW0

by Alan Lin

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r73/three.js"></script>
<script src="https://dl.dropboxusercontent.com/u/3587259/Code/Threejs/OrbitControls.js"></script>

CSS

body {
    overflow: hidden;
}

JavaScript

var scene, renderer, camera;
var controls;


init();
animate();

function init() {
	scene = new THREE.Scene();
  renderer = new THREE.WebGLRenderer();
  renderer.setSize(window.innerWidth, window.innerHeight);
  renderer.setClearColor(0x999999);
  document.body.appendChild(renderer.domElement);

  camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 10000);
  camera.position.set(0,50,150);
  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);
  window.addEventListener('resize', onWindowResize, false);

  train();
}

function train(){

	var total = new THREE.Object3D();
  
  var A  = new THREE.Mesh( new THREE.BoxGeometry( 12, 10, 30 ), new THREE.MeshBasicMaterial( {color: 0x00bfff } ) );
  A.position.set(0, 5, 0);
  total.add( A );
	
  var B =  new THREE.Mesh( new THREE.CylinderGeometry(5, 5, 12.1, 64, 64, false, 0, Math.PI), new THREE.MeshBasicMaterial( {color: 0x00afff } ) );
  B.rotation.z = Math.PI/2;
  B.position.set(0, 0, 14);
  total.add( B );
  
  var C = new THREE.Mesh( new THREE.CylinderGeometry(4, 4, 18, 64, 64), new THREE.MeshBasicMaterial( {color: 0x00bfff } ));
  C.rotation.x = Math.PI/2;
  C.position.set(0, 10, 6);
  total.add( C );
  
  var D = new THREE.Mesh( new THREE.CylinderGeometry(4, 4, 4, 64, 64), new THREE.MeshBasicMaterial( {color: 0x000000 } ));
  D.rotation.x = Math.PI/2;
  D.position.set(0, 10, 17);
  total.add( D );
  
  THREE.ImageUtils.crossOrigin = '';
  
  var E = new THREE.Mesh(new THREE.CircleGeometry(4.2,32),new THREE.MeshBasicMaterial({map: THREE.ImageUtils.loadTexture('http://i.imgur.com/P3zuCjc.png'),transparent: true}));
  E.position.set(0,10,19.1);                        
  total.add(E);
  
  var F = new THREE.Mesh( new THREE.CylinderGeometry(0.8, 0.8, 7.5, 64, 64), new THREE.MeshBasicMaterial( {color: 0x000000 } ));
  F.position.set(0,...