three.js dev template

by realhunts

HTML

<script src="https://rawgit.com/mrdoob/three.js/dev/build/three.js"></script>
<script src="https://threejs.org/examples/js/controls/OrbitControls.js"></script>

CSS

body {
	background-color: #000;
	margin: 0px;
	overflow: hidden;
}

JavaScript

// Simple three.js example

var renderer, scene, camera, controls, alpha, boxMesh, curve, startTime;

init();
animate();

function init() {

    // renderer
    renderer = new THREE.WebGLRenderer();
    renderer.setSize( window.innerWidth, window.innerHeight );
    document.body.appendChild( renderer.domElement );

    // scene
    scene = new THREE.Scene();
    
    // camera
    camera = new THREE.PerspectiveCamera( 40, window.innerWidth / window.innerHeight, 1, 10000 );
    camera.position.set(0, 0, 40);

    // controls
    controls = new THREE.OrbitControls(camera, renderer.domElement);

    
    var path = new THREE.Path();
    curve = new THREE.CatmullRomCurve3( [
      new THREE.Vector3( -10, 0, 10 ),
      new THREE.Vector3( -5, 5, 5 ),
      new THREE.Vector3( 0, 0, 0 ),
      new THREE.Vector3( 5, -5, 5 ),
      new THREE.Vector3( 10, 0, 10 )
		] );
    var points = curve.getPoints( 50 );
    var geometry = new THREE.BufferGeometry().setFromPoints( points );

    var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );

    // Create the final object to add to the scene
    var curveObject = new THREE.Line( geometry, material );
    
   
		var boxGeo = new THREE.BoxGeometry( 1, 1, 1 );
    boxMesh = new THREE.Mesh(boxGeo);
    
    boxMesh.position.copy(curve.getPoint(0));
		console.log(Math.floor(2.45) - 2.45);
		console.log(new Date().getTime());
    scene.add(curveObject,boxMesh);
    startTime = new Date().getTime();
}

function animate() {

    requestAnimationFrame( animate );
    
    var time = (new Date().getTime() - startTime)/2000;
    
    alpha = -(Math.floor(time) - time);
		curve.getPoint( alpha, boxMesh.position );

    renderer.render( scene, camera );

}