three.js testbed

with orbitControls, XZgrid, info

by chuby0307

HTML

<div id = "info"> 
     webgl tutorial 20 <br/>
	 Sounds <br/><br/>
	 with BGM (<a href="javascript:toggle();">dimmer</a>)
  </div>
  
<audio id="collisionsound" style="display:none">
<source src="sounds/collision3.wav" type='audio/wav'>
</audio>

<audio id="soundtrack" autoplay loop style="display:none">
<source src="sounds/KennyG.mp3" type='audio/mp3'>
</audio>

<script src="http://jyunming-chen.github.io/tutsplus/js/three.min.js"></script>
<script src="http://jyunming-chen.github.io/tutsplus/js/OrbitControls.js"></script>

CSS

#info {
		position: absolute;
		top: 0px; width: 100%;
		font-family: Monospace;
		font-size: 20px;
		padding: 5px;
		text-align: center;
		color: #003333
	}
	a {color: purple}

JavaScript

var scene, renderer, camera;
var controls;
var clock = new THREE.Clock();
//var pos,vel,mesh;

var pos = new THREE.Vector3(0, 6, 0);
    var vel = new THREE.Vector3(-10, 0, 0);
var mesh;


var collisionSound, soundTrack;
var isPaused = false, soundVal = 1.0, sign = 1.0;

var cube;
var puck = {
	pos: new THREE.Vector3(),
	vel: new THREE.Vector3(),
	mesh: new THREE.Object3D()
};


init();
animate();

function toggle() {
	isPaused = !isPaused;
	sign = isPaused ? -1 : 1;
	console.log (isPaused);
}

function init()
{
	collisionSound = document.getElementById ('collisionsound');
	soundTrack = document.getElementById ('soundtrack');
	
	renderer = new THREE.WebGLRenderer( {antialias:true} );
	var width = window.innerWidth;
	var height = window.innerHeight;
	renderer.setSize (width, height);
	renderer.setClearColor (0xeeeeee);
	document.body.appendChild (renderer.domElement);

	scene = new THREE.Scene();
	
	//debugger;
	puck.mesh = new THREE.Mesh (new THREE.CylinderGeometry (6,6,4,20,20), new THREE.MeshLambertMaterial ({color:0xff0000}));
	puck.pos = new THREE.Vector3 (0,2,0);
	puck.vel = new THREE.Vector3 (30,0,40);
	//scene.add (puck.mesh);
    
var geom = new THREE.Geometry();
var v1 = new THREE.Vector3(0,0,0);
var v2 = new THREE.Vector3(10,0,-5);
var v3 = new THREE.Vector3(10,0,5);


console.log(geom.vertices)
geom.vertices.push( v1 );
geom.vertices.push( v2 );
geom.vertices.push( v3 );

geom.faces.push( new THREE.Face3( 0, 1, 2 ) );
geom.computeFaceNormals();

    mesh= new THREE.Mesh( geom, new THREE.MeshNormalMaterial() );
    mesh.rotation.x=Math.PI;
    //mesh.position.set(0,6,0);
    
    pos = new THREE.Vector3(0, 6, 0);
    vel = new THREE.Vector3(-10, 0, 0);
    scene.add(mesh);    

    
    
    
    
    
    
	
	var cubeGeometry = new THREE.BoxGeometry (100,6,100);
	var cubeMaterial = new THREE.MeshLambertMaterial ({color: 0x888888});
	cube = new THREE.Mesh (cubeGeometry, cubeMaterial);
	cube.position.set (0,-2.5,0);
	scene.add (cube);
	
	var cubeGeometry...