gameDesign HW1

by YouTingKuo

HTML

<div id="info">HW1
  <br/>
    <button id="mode" style="width:15%">run</button>
  <br/>
</div>
<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>
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>

CSS

#info {
  position: absolute;
  top: 2%;
  width: 100%;
  padding: 10px;
  text-align: center;
  color: #ffff00
}

body {
  overflow: hidden;
}

JavaScript

var scene, renderer, camera;
var controls, train;
var angle = 0, mode = 1;
var clock = new THREE.Clock();
var light, light2;

$('#mode').click(function() {
	mode = !mode;
	if(mode) {
  	$(this).text("run");
    train.position.set(0, 0, 0);
    train.rotation.y = 0;
    camera.position.set(120, 30, 120);
  }
  else {
  	$(this).text("stop");
    camera.position.set(0, 50, 280);
  }
});

init();
animate();

function init() {
  scene = new THREE.Scene();
  renderer = new THREE.WebGLRenderer();
  renderer.setSize(window.innerWidth, window.innerHeight);
  renderer.setClearColor(0x888888);
  document.body.appendChild(renderer.domElement);
	
  light = new THREE.PointLight();
  light.position.set(130, 100, 100);
  scene.add(light);
  light2 = new THREE.PointLight();
  light2.position.set(-130, 100, 100);
  scene.add(light2);
  /*
  var light = new THREE.PointLight();
  light.position.set(100, 100, 200);
  scene.add(light);
  var light2 = new THREE.PointLight();
  light2.position.set(-100, 100, 200);
  scene.add(light2);
  */
  
  camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 1000);
  camera.position.set(120, 30, 120);
  controls = new THREE.OrbitControls(camera, renderer.domElement);
  
  train = new THREE.Object3D();
  train.position.x = 0;
  scene.add(train);
  
  THREE.ImageUtils.crossOrigin = '';
  var geometry = new THREE.BoxGeometry( 40, 25, 38 );
	var material = new THREE.MeshLambertMaterial( {color: 0x188be9} );
  var materialArray = [];
  materialArray.push(new THREE.MeshLambertMaterial({
    map: THREE.ImageUtils.loadTexture('http://i.imgur.com/BxMOnTY.png'), side:THREE.DoubleSide}));
  materialArray.push(new THREE.MeshLambertMaterial({
    map: THREE.ImageUtils.loadTexture('http://i.imgur.com/mg2qV31.png'), side:THREE.DoubleSide}));
  materialArray.push(new THREE.MeshLambertMaterial({
    map: THREE.ImageUtils.loadTexture('http://i.imgur.com/wLzAxBr.png'), side:THREE.DoubleSide}));
  materialArray.push(new...