_quality = "MEDIUM"; Stage.scaleMode = "noScale"; Mouse.hide(); yang = 0; xang = 0; viewdistance = 0; viewdistanceFin = 500; espaciado = 50; maxvel = 15; acel = 1.2; autoX = 0; autoY = 20; autoZ = 0; autoA = 0; autoV = 0; // modelo del auto auto = new Array(); auto.push({x:-20, y:-10, z:-10}); auto.push({x:-20, y:-20, z:-10}); auto.push({x:-10, y:-20, z:-10}); auto.push({x:-10, y:-30, z:-10}); auto.push({x:10, y:-30, z:-10}); auto.push({x:10, y:-20, z:-10}); auto.push({x:20, y:-20, z:-10}); auto.push({x:20, y:-10, z:-10}); auto.push({x:-20, y:-10, z:10}); auto.push({x:-20, y:-20, z:10}); auto.push({x:-10, y:-20, z:10}); auto.push({x:-10, y:-30, z:10}); auto.push({x:10, y:-30, z:10}); auto.push({x:10, y:-20, z:10}); auto.push({x:20, y:-20, z:10}); auto.push({x:20, y:-10, z:10}); // conexiones del auto autox = new Array(); autox.push({a:0, b:8}); autox.push({a:1, b:9}); autox.push({a:2, b:10}); autox.push({a:3, b:11}); autox.push({a:4, b:12}); autox.push({a:5, b:13}); autox.push({a:6, b:14}); autox.push({a:7, b:15}); autox.push({a:0, b:1}); autox.push({a:1, b:2}); autox.push({a:2, b:3}); autox.push({a:3, b:4}); autox.push({a:4, b:5}); autox.push({a:5, b:6}); autox.push({a:6, b:7}); autox.push({a:7, b:0}); autox.push({a:8, b:9}); autox.push({a:9, b:10}); autox.push({a:10, b:11}); autox.push({a:11, b:12}); autox.push({a:12, b:13}); autox.push({a:13, b:14}); autox.push({a:14, b:15}); autox.push({a:15, b:8}); // generar terreno terreno = new Array(); for (x=-500; x<=500; x += espaciado) { fila = new Array(); for (z=-500; z<=500; z += espaciado) { asd = new Object(); asd.x = x; asd.z = z; asd.y = 50+random(35); fila.push(asd); } terreno.push(fila); } // listener para el mousewheel var mouseListener:Object = new Object(); mouseListener.onMouseWheel = function(delta) { viewdistanceFin += delta*10; if(viewdistanceFin < 0) viewdistanceFin = 0; }; onEnterFrame = function () { // mover auto if(Key.isDown(87) and autoV-maxvel) { autoV-=acel; } else { autoV*=0.9; } if(Key.isDown(65)) { autoA -= autoV/80; } if(Key.isDown(68)) { autoA += autoV/80; } autoX += Math.cos(autoA)*autoV; autoZ -= Math.sin(autoA)*autoV; // angulo y camara yangFin = (_xmouse-250)/250*-Math.PI/5; xangFin = (_ymouse)/200*Math.PI/5; yang += (yangFin-yang)/3; xang += (xangFin-xang)/3; viewdistance += (viewdistanceFin-viewdistance)/5; clear(); lineStyle(1,0x000000,90); // calcular grilla terrenox = new Array(); for (xa=0; xa