// not using these - actually user controlled const CLOCKTICK =100;// speed of run - move things every n millisecondsconst MAXSTEPS =1000;// length of a run before final scoreconst objectsize =300;const MAXPOS =4000;const startRadiusConst = MAXPOS *0.5;// distance from centre to start the camera atconst maxRadiusConst = MAXPOS *5;// maximum distance from camera we will render things const SKYCOLOR =0xffffff;// a number, not a string function randomfloatAtoB ( A, B ){return( A +(Math.random()*(B-A)));}function randomintAtoB ( A, B ){return(Math.round ( randomfloatAtoB ( A, B )));}functionWorld(){var x, y, z;// current location var textureArray;function init(){// create one box to start var shape =new THREE.BoxGeometry( objectsize, objectsize, objectsize );var theobject =new THREE.Mesh( shape );
theobject.position.x =0;
theobject.position.z =0;
theobject.position.y =0;
x = theobject.position.x;// current position
y = theobject.position.y;
z = theobject.position.z;
threeworld.scene.add(theobject);
textureArray =[(new THREE.ImageUtils.loadTexture("/uploads/starter/minecraft.1.jpg")),(new THREE.ImageUtils.loadTexture("/uploads/starter/minecraft.2.jpg"))];for(var i =0; i < textureArray.length; i++)// for all textures {
textureArray[i].minFilter = THREE.LinearFilter;}
paintThis ( theobject );}function handleKeyDown (event){var shape =new THREE.BoxGeometry( objectsize, objectsize, objectsize );var theobject =new THREE.Mesh( shape );
theobject.position.x = x;// default position is current position - going to then move it
theobject.position.y = y;
theobject.position.z = z;var code = event.keyCode;if(code ==37) theobject.position.x = x - objectsize ;// leftif(code ==39) theobject.position.x = x + objectsize ;// rightif(code ==38) theobject.position.z = z - objectsize ;// forwardif(code ==40) theobject.position.z = z + objectsize ;// back if(code ==34) theobject.position.y = y - objectsize ;if(code ==33) theobject.position.y = y + objectsize ;
x = theobject.position.x;// current position is now this
y = theobject.position.y;
z = theobject.position.z;// console.log ( "(x,y,z) = (" + x + "," + y + "," + z + ")" );// threeworld.lookat.copy ( theobject.position );
threeworld.scene.add(theobject);
paintThis ( theobject );// sound effect credit:// http://soundbible.com/1399-Chambering-A-Round.htmlvar audio =newAudio('/uploads/starter/chamber.mp3');
audio.play();}function paintThis( object )// paint objects with random textures {var t = randomintAtoB (0, textureArray.length -1);// random texture
object.material =new THREE.MeshBasicMaterial({ map: textureArray[t]});}this.endCondition;this.newRun =function(){this.endCondition =false;
threeworld.init3d ( startRadiusConst, maxRadiusConst, SKYCOLOR );var s ="<center> <h2> User controlled. Use arrow keys and PgUp, PgDn to draw. </h2> </center>";
$("#user_span2").html( s );
init();
document.addEventListener('keydown', handleKeyDown );};this.getState =function(){return(null);};this.takeAction =function( a ){};this.endRun =function(){};this.getScore =function(){return0;};}