Code viewer for World: Cloned Run Spider Run
function randomfloatAtoB(e,a){return e+Math.random()*(a-e)}function randomintAtoB(e,a){return Math.round(randomfloatAtoB(e,a))}function randomBoolean(){return!(Math.random()<.5)}function randomPick(e,a){return randomBoolean()?e:a}function World(){function e(){for(var e=0;e<gridsize;e++){U[e]=new Array(gridsize);for(var a=0;a<gridsize;a++)U[e][a]=GRID_BLANK}}function a(e,a){return M==e&&z==a||(y==e&&x==a||(U[e][a]==GRID_WALL||U[e][a]==GRID_MAZE))}function n(e){return e-1500}function o(){var e=new THREE.LoadingManager,a=new THREE.OBJLoader(e);a.load("/uploads/dean95/hand.obj",t),THREE.Loader.Handlers.add(/.tga$/i,new THREE.TGALoader);var n=new THREE.MTLLoader;n.setTexturePath("/uploads/dean95/"),n.setPath("/uploads/dean95/"),n.load("blackwidow4.mtl",function(e){e.preload();var a=new THREE.OBJLoader;a.setMaterials(e),a.setPath("/uploads/dean95/"),a.load("blackwidow4.obj",function(e){r(e)})});var o=new THREE.TextureLoader;o.load("/uploads/dean95/thorn.jpg",function(e){e.minFilter=THREE.LinearFilter,E(new THREE.MeshBasicMaterial({map:e}))});var i=new THREE.TextureLoader;i.load("/uploads/dean95/shrub.jpg",function(e){e.minFilter=THREE.LinearFilter,c(new THREE.MeshBasicMaterial({map:e}))});var s=new THREE.TextureLoader;s.load("/uploads/dean95/web.jpg",function(e){e.minFilter=THREE.LinearFilter,h(new THREE.MeshBasicMaterial({map:e}))})}function t(e){e.scale.multiplyScalar(50),e.traverse(i),v=e,threeworld.scene.add(v)}function i(e){e instanceof THREE.Mesh&&(e.material.map=THREE.ImageUtils.loadTexture("/uploads/dean95/hand_mapnew.jpg"))}function r(e){e.scale.multiplyScalar(150),N=e,threeworld.scene.add(N)}function s(){var e=[new THREE.MeshBasicMaterial({map:THREE.ImageUtils.loadTexture("/uploads/dean95/posx.jpg"),side:THREE.BackSide}),new THREE.MeshBasicMaterial({map:THREE.ImageUtils.loadTexture("/uploads/dean95/negx.jpg"),side:THREE.BackSide}),new THREE.MeshBasicMaterial({map:THREE.ImageUtils.loadTexture("/uploads/dean95/posy.jpg"),side:THREE.BackSide}),new THREE.MeshBasicMaterial({map:THREE.ImageUtils.loadTexture("/uploads/dean95/negy.jpg"),side:THREE.BackSide}),new THREE.MeshBasicMaterial({map:THREE.ImageUtils.loadTexture("/uploads/dean95/posz.jpg"),side:THREE.BackSide}),new THREE.MeshBasicMaterial({map:THREE.ImageUtils.loadTexture("/uploads/dean95/negz.jpg"),side:THREE.BackSide})],a=new THREE.CubeGeometry(skyboxConst,skyboxConst,skyboxConst),n=new THREE.MeshFaceMaterial(e),o=new THREE.Mesh(a,n);threeworld.scene.add(o)}function d(){for(var e=0;e<gridsize;e++)for(var a=0;a<gridsize;a++)0!==e&&29!=e&&0!==a&&29!=a||(U[e][a]=GRID_WALL)}function u(){for(var e=0,a=0;a<gridsize;a++)for(var o=0;o<gridsize;o++)if(U[a][o]==GRID_WALL){var t=new THREE.BoxGeometry(squaresize,squaresize,squaresize),i=new THREE.Mesh(t);i.material.color.setHex(BLANKCOLOR),i.position.x=n(a*squaresize),i.position.z=n(o*squaresize),i.position.y=0,threeworld.scene.add(i),W[e]=i,e++}}function E(e){for(var a=0;a<W.length;a++)W[a]&&(W[a].material=e)}function l(){for(var e=1;e<=NOBOXES;e++){var a=randomintAtoB(2,27),n=randomintAtoB(2,27);U[a][n]=GRID_MAZE}}function T(){for(var e=0,a=0;a<gridsize;a++)for(var o=0;o<gridsize;o++)if(U[a][o]==GRID_MAZE){var t=new THREE.BoxGeometry(squaresize,squaresize,squaresize),i=new THREE.Mesh(t);i.material.color.setHex(BLANKCOLOR),i.position.x=n(a*squaresize),i.position.z=n(o*squaresize),i.position.y=0,threeworld.scene.add(i),b[e]=i,e++}}function c(e){for(var a=0;a<b.length;a++)b[a]&&(b[a].material=e)}function R(){var e,n;do e=randomintAtoB(1,28),n=randomintAtoB(1,28);while(a(e,n));G=e,S=n,U[e][n]=GRID_WEB}function f(){for(var e=0;e<gridsize;e++)for(var a=0;a<gridsize;a++)if(U[e][a]==GRID_WEB)var o=new THREE.BoxGeometry(squaresize,squaresize,squaresize);var t=new THREE.Mesh(o);t.material.color.setHex(BLANKCOLOR),t.position.x=n(G*squaresize),t.position.z=n(S*squaresize),t.position.y=0,threeworld.scene.add(t),F[0]=t}function h(e){F[0].material=e}function p(){if(v){var e=n(M*squaresize),a=n(z*squaresize),o=-100;v.position.x=e,v.position.y=o,v.position.z=a,threeworld.lookat.copy(v.position),threeworld.lookat.y=150}}function A(){var e,n;do e=randomintAtoB(1,28),n=randomintAtoB(1,28);while(a(e,n));M=e,z=n}function I(){return M<y?ACTION_RIGHT:M>y?ACTION_LEFT:ACTION_STAYSTILL}function w(){return z<x?ACTION_UP:z>x?ACTION_DOWN:ACTION_STAYSTILL}function H(){return randomPick(I(),w())}function O(){var e=H(),n=M,o=z;e==ACTION_LEFT?n--:e==ACTION_RIGHT?n++:e==ACTION_UP?o++:e==ACTION_DOWN&&o--,a(n,o)||(true&&(e==ACTION_LEFT?m(3*(Math.PI/2)):e==ACTION_RIGHT?m(1*(Math.PI/2)):e==ACTION_UP?m(0*(Math.PI/2)):e==ACTION_DOWN&&m(2*(Math.PI/2))),M=n,z=o)}function m(e){if(j!=e){var a=(j+e)/2;v.rotation.set(0,a,0),j=a}}function C(){if(N){var e=n(y*squaresize),a=n(x*squaresize),o=0;N.position.x=e,N.position.y=o,N.position.z=a,threeworld.follow.copy(N.position),threeworld.follow.y=150}}function L(){var e,n;do e=randomintAtoB(1,28),n=randomintAtoB(1,28);while(a(e,n));y=e,x=n}function _(e){var n=y,o=x;e==ACTION_LEFT?n--:e==ACTION_RIGHT?n++:e==ACTION_UP?o++:e==ACTION_DOWN&&o--,a(n,o)||(y=n,x=o)}function g(e){37==e.keyCode&&_(ACTION_UP),38==e.keyCode&&_(ACTION_LEFT),39==e.keyCode&&_(ACTION_DOWN),40==e.keyCode&&_(ACTION_RIGHT)}function B(){var e=K.getScore(),a="Score:    "+e+". Get the spider to the web using the arrow keys to progress to the next level!";$("#user_span3").html(a)}var N,v,M,z,y,x,G,S,k,q,D,P,U=new Array(gridsize),W=new Array(120),b=new Array(NOBOXES),F=new Array(1),j=0,K=this;this.endCondition,this.endCondition=!1,k=0,q=0,D=0,P=0,this.newRun=function(){if(this.endCondition=!1,e(),d(),l(),R(),L(),A(),true){threeworld.init3d(startRadiusConst,maxRadiusConst,SKYCOLOR);var a=new THREE.AmbientLight;threeworld.scene.add(a);var n=new THREE.DirectionalLight(LIGHTCOLOR,3);n.position.set(startRadiusConst,startRadiusConst,startRadiusConst),threeworld.scene.add(n);var t="<audio  id=theaudio  src=/uploads/dean95/theflashtheme.mp3   autoplay loop> </audio>";$("#user_span2").html(t),s(),u(),T(),f(),o(),document.onkeydown=g}},this.getState=function(){var e=[y,x,M,z];return e},this.takeAction=function(e){D++,D%2==0&&O(),true&&(C(),p(),B())},this.endRun=function(){return M==y&&z==x},this.nextLevel=function(){if(G==y&&S==x)return this.endCondition=!0,P++,newRun()},this.getScore=function(){return P}}const CLOCKTICK=150,MAXSTEPS=1e3,gridsize=30,squaresize=100,MAXPOS=3e3,NOBOXES=Math.trunc(60),SKYCOLOR=16777164,BLANKCOLOR=SKYCOLOR,LIGHTCOLOR=16777215,startRadiusConst=3e3,skyboxConst=9e3,maxRadiusConst=15e3,ACTION_LEFT=0,ACTION_RIGHT=1,ACTION_UP=2,ACTION_DOWN=3,ACTION_STAYSTILL=4,GRID_BLANK=0,GRID_WALL=1,GRID_MAZE=2,GRID_WEB=3;