let timeTravelJumpingIncriment=0
let timeTravelHasStarted=false
let thrustersActivated = false
let treeGreenColorShade = []
let atmosphereColorChange=0
let aircraftParked = true
const chunkSize = 8000, renderDist = 3;
let playersPlane, mouseControl, chunks = [];
let ufoTurningSpeed = .01
let stopShowingBoeingModel = false
let spaceShipRoateSpeed = 0
let battleModeIntroPlayed=false
let dragonCounterCheck=-1
let dragonThrustModifier=0
Dragon0 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000000.obj', true)
Dragon1 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000003.obj', true)
Dragon2 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000006.obj', true)
Dragon3 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000009.obj', true)
Dragon4 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000012.obj', true)
Dragon5 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000015.obj', true)
Dragon6 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000018.obj', true)
Dragon7 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000021.obj', true)
Dragon8 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000024.obj', true)
Dragon9 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000027.obj', true)
Dragon10 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000030.obj', true)
Dragon11 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000033.obj', true)
Dragon12 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000036.obj', true)
Dragon13 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000039.obj', true)
Dragon14 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000042.obj', true)
Dragon15 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000045.obj', true)
Dragon16 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000048.obj', true)
Dragon17 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000051.obj', true)
Dragon18 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000054.obj', true)
Dragon19 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000057.obj', true)
Dragon20 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000060.obj', true)
Dragon21 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000063.obj', true)
Dragon22 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000066.obj', true)
Dragon23 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000069.obj', true)
Dragon24 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000072.obj', true)
Dragon25 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000075.obj', true)
Dragon26 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000078.obj', true)
Dragon27 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000081.obj', true)
Dragon28 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000084.obj', true)
Dragon29 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000087.obj', true)
Dragon30 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000090.obj', true)
Dragon31 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000093.obj', true)
Dragon32 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000096.obj', true)
Dragon33 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000099.obj', true)
Dragon34 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000102.obj', true)
Dragon35 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000105.obj', true)
Dragon36 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000108.obj', true)
Dragon37 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000111.obj', true)
Dragon38 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000114.obj', true)
Dragon39 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000117.obj', true)
Dragon40 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000120.obj', true)
Dragon41 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000123.obj', true)
Dragon42 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000126.obj', true)
Dragon43 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000129.obj', true)
Dragon44 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000132.obj', true)
Dragon45 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000135.obj', true)
Dragon46 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000138.obj', true)
Dragon47 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000141.obj', true)
Dragon48 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000144.obj', true)
Dragon49 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000147.obj', true)
Dragon50 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000150.obj', true)
Dragon51 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000153.obj', true)
Dragon52 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000156.obj', true)
Dragon53 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000159.obj', true)
Dragon54 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000162.obj', true)
Dragon55 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000165.obj', true)
Dragon56 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000168.obj', true)
Dragon57 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000171.obj', true)
Dragon58 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000174.obj', true)
Dragon59 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000177.obj', true)
Dragon60 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000180.obj', true)
Dragon61 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000183.obj', true)
Dragon62 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000186.obj', true)
Dragon63 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000189.obj', true)
Dragon64 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000192.obj', true)
Dragon65 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000195.obj', true)
Dragon66 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000198.obj', true)
Dragon67 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000201.obj', true)
Dragon68 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000204.obj', true)
Dragon69 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000207.obj', true)
Dragon70 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000210.obj', true)
Dragon71 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000213.obj', true)
Dragon72 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000216.obj', true)
Dragon73 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000219.obj', true)
Dragon74 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000222.obj', true)
Dragon75 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000225.obj', true)
Dragon76 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000228.obj', true)
Dragon77 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000231.obj', true)
Dragon78 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000234.obj', true)
Dragon79 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000237.obj', true)
Dragon80 = loadModel('https://deckard.openprocessing.org/user326951/visual2515675/h656e034090df8974b2b1f5908919eb90/Dragon_Baked_Actions_000240.obj', true)
horse = loadModel('WildHorse.obj');
base_land = loadModel('model.obj', true);
thePlane = loadModel('planeMod2.obj', true);
seaDuckPlane = loadModel('seaDuckPlane.obj', true);
helicopter = loadModel('heli.obj', true);
ufo = loadModel('ufo.obj', true);
boeing787 = loadModel('boeing787.obj', true);
boeing787cockpit = loadModel('cockpit.obj', true);
pirateShip = loadModel('https://deckard.openprocessing.org/user326951/visual2152520/h6cef298a303a434da151b01f70759c20/pirateShip.obj', true);
spaceShip = loadModel('spaceShip.obj', true);
sleigh = loadModel('Sleigh.obj', true);
sleighBottom = loadModel('SleighBottom.obj', true);
deer = loadModel('deer.obj', true);
antlers = loadModel('antlers.obj', true);
city = loadModel('block_YS_637.obj', true);
parkingSpot = loadModel('parkingSpot.obj', true);
gingerbreadHouse = loadModel('gingerbreadHouse.obj', true);
medieval = loadModel('medieval.obj', true);
dragonBGMusic = loadSound('exciting-dragon-fight-255084.mp3')
planeSound = loadSound('plane.mp3');
warning = loadSound('warning2.mp3');
thrustSound = loadSound('jet-engine-startup-14537.mp3');
electricitySound = loadSound('ui-abstract-electricity-glitch-228341.mp3');
spaceMusic = loadSound('faded-relaxing-piano-music-218335.mp3');
shootingSound = loadSound('shooting_sound.mp3');
fighterMusic = loadSound('fighterMusic.mp3');
battleModeIntro = loadSound('battleMode.mp3');
ringCollectedSound = loadSound('notification-5-140376.mp3');
gameMode1Music = loadSound('intense-electro-trailer-music-243987.mp3')
explosion = loadSound('explosion2.mp3')
xmasMusic= loadSound('christmas-265852.mp3')
parkingBayZoneBGMusic= loadSound('inspirational-background-112290.mp3')
dragonRoar= loadSound('monster-warrior-roar-195877.mp3')
font = loadFont('https://fonts.gstatic.com/s/kanit/v7/nKKU-Go6G5tXcr4uPiWgX6BJNUJy.ttf')
horseText = loadImage('WildHorse_BaseColor.png');
starSkydome = loadImage('starSkydome.png');
deerText = loadImage('deerText.png');
moonTexture =loadImage('https://deckard.openprocessing.org/user326951/visual1994296/h3ac1fa7479f383780c1ea45919af0c86/moon.png')
venusTexture = loadImage('venusmap.jpg');
mercuryTexture = loadImage('mercurymap.jpg');
earthTexture = loadImage('earthmap1k.jpg')
sunTexture = loadImage('sunmap.jpg');
cityText = loadImage('color.jpg');
gingerbreadHouseText= loadImage('gingerbreadHouse.jpg');
medievalText = loadImage('medievalText.png');
createCanvas(windowWidth, windowHeight, WEBGL);
playersPlane = new PlayersPlane(createVector(0, -1000, 0), createVector(0, 0, 0), Quaternion.identity(), Quaternion.identity(), []);
OPC.color('plane_color', '#000000');
OPC.select('Environment', {
OPC.toggle('MiniMap', false)
OPC.slider('Roll_Sensitivity', 4, 0, 10, 1)
OPC.slider('Pitch_Sensitivity', 0, 0, 10, 1)
OPC.slider('Yaw_Sensitivity', 0, 0, 10, 1)
description: 'Use at you own risk!',
description: '*Will make Machine Gun Noises* Space to Fire!',
OPC.slider("Difficulty",1,1,5)
description: 'Collect the rings!',
description: 'Save the People! Hold Space to use ladder!',
OPC.toggle('portals', false)
OPC.toggle('break_space_and_time', false)
amp = new p5.Amplitude();
append(treePosX, random(-5000, 5000))
append(treePosZ, random(-5000, 5000))
append(treeHeight, random(150, 300))
append(treeGreenColorShade, random(100, 255))
for (let i = 0; i < 1; i++)
horse[i] = new A_Vehicle("horse","red",200,0,-9000)
const dt = Math.min(deltaTime / 1000, 1 / 6);
if(break_space_and_time==false)
background(128, 128, 192);
directionalLight(255, 255, 255, 1, 1, 1);
if(aircraftParked==false)
parkingBayZoneBGMusic.stop()
playersPlane.yaw(25 + Yaw_Sensitivity * 70, dt);
playersPlane.yaw(-25 - Yaw_Sensitivity * 70, dt);
playersPlane.pitch(map(mouseY, 0, height, -50, 50), dt);
playersPlane.roll(map(mouseX, 0, width, 75, -75), dt);
playersPlane.accelerate(createVector(0, 0, 1), mouseIsPressed && mouseButton === CENTER ? 2500 : mouseIsPressed && mouseButton === LEFT ? 10000 : 5000, dt)
playersPlane.pitch(50 + Pitch_Sensitivity * 70, dt);
playersPlane.pitch(-50 - Pitch_Sensitivity * 70, dt);
playersPlane.roll(75 + Roll_Sensitivity * 70, dt);
playersPlane.roll(-75 - Roll_Sensitivity * 70, dt);
thrustersActivated = true
if (thrustSound.isPlaying() == false) thrustSound.play()
if (Thrust_Limit == true) Throttle = .1
thrustersActivated = false
if(battleModeIntroPlayed==false)
if(Yaw_Sensitivity<1) Yaw_Sensitivity=1
battleModeIntroPlayed=true
if(dragonRoar.isPlaying()==false) dragonRoar.play()
else if(shootingSound.isPlaying()==false) shootingSound.play()
else battleModeIntroPlayed=false
playersPlane.accelerate(createVector(0, 0, 1), keyIsDown(40) ? 2500 : keyIsDown(38) ? 10000 : 5000, dt);
if (playersPlane.pos.y > 0)
playersPlane.pos.set(0, -1000, 0);
playersPlane.vel.set(0, 0, 0);
playersPlane.quat.set(1, 0, 0, 0);
playersPlane.quatVel.set(1, 0, 0, 0);
playersPlane.contrail = [];
for (let i = chunks.length - 1; i >= 0; i--)
if (Math.sqrt((playersPlane.pos.x - chunks[i].x) ** 2 + (playersPlane.pos.z - chunks[i].y) ** 2) > renderDist * chunkSize) chunks.splice(i, 1);
const minX = nearestFloor(playersPlane.pos.x - renderDist * chunkSize, chunkSize),
maxX = nearestCeil(playersPlane.pos.x + renderDist * chunkSize, chunkSize),
minZ = nearestFloor(playersPlane.pos.z - renderDist * chunkSize, chunkSize),
maxZ = nearestCeil(playersPlane.pos.z + renderDist * chunkSize, chunkSize);
for (let i = minX; i <= maxX; i += chunkSize)
for (let j = minZ; j <= maxZ; j += chunkSize)
if (Math.sqrt((playersPlane.pos.x - i) ** 2 + (playersPlane.pos.z - j) ** 2) > renderDist * chunkSize) continue;
for (let k = 0; k < chunks.length; k++)
if (chunks[k].x === i && chunks[k].y === j)
if (!duplicate) chunks.push(createVector(i, j));
if (keyIsDown(65)) playersPlane.yaw(300, dt);
if (keyIsDown(68)) playersPlane.yaw(-300, dt);
ambientMaterial(0, 192, 0);
if(aircraftParked==false)
if(inThePast==true & timeTravelHasStarted==false)
else if(inThePast==false & timeTravelHasStarted==false)
for (let i = 0; i < chunks.length; i++)
translate(chunks[i].x, 50, chunks[i].y);
box(chunkSize, 100, chunkSize);
for (t = 0; t < treePosX.length-objectsRemove; t++)
translate(treePosX[t], -250, treePosZ[t])
ambientMaterial(0, treeGreenColorShade[t], 0);
ambientMaterial("brown");
translate(chunks[i].x, 50, chunks[i].y);
box(chunkSize, 100, chunkSize);
translate(chunks[i].x, 50, chunks[i].y);
ambientMaterial("orange")
box(chunkSize, 100, chunkSize)
for (t = 0; t < treePosX.length-objectsRemove; t++)
translate(treePosX[t], -250, treePosZ[t])
ambientMaterial("orange")
translate(chunks[i].x, 50, chunks[i].y);
box(chunkSize, 100, chunkSize);
for (t = 0; t < treePosX.length-objectsRemove; t++)
translate(treePosX[t], -250, treePosZ[t])
translate(treePosX[t], -250, treePosZ[t])
ambientMaterial(0, treeGreenColorShade[t], 0);
translate(0, treeHeight[t]/2, 0)
cone(50, treeHeight[t]/2)
translate(0, -treeHeight[t]/2, 0)
ambientMaterial("brown");
translate(chunks[i].x, 20, chunks[i].y);
translate(chunks[i].x, 20, chunks[i].y);
texture(gingerbreadHouseText)
translate(chunks[i].x, 20, chunks[i].y);
translate(playersPlane.pos.x,0,playersPlane.pos.z)
translate(-205000,-140000,-0)
translate(0,-183000,340000)
translate(0,-183000*2.5,340000*2.5)
translate(0,-183000*2.5,340000*2.5)
translate(0,-183000*2.5,340000*2.5)
playerdistanceFromParkingSpot = dist(playersPlane.pos.z, playersPlane.pos.y, 6000, -500)
if((playerdistanceFromParkingSpot < 200))
playersPlane.pos.set(0, -1000, 0);
playersPlane.vel.set(0, 0, 0);
playersPlane.quat.set(1, 0, 0, 0);
playersPlane.quatVel.set(1, 0, 0, 0);
playersPlane.contrail = [];
translate(playersPlane.pos)
if (playersPlane.pos.y < -10000)
if (spaceMusic.isPlaying() == false) spaceMusic.play()
var vol = amp.getLevel();
volumeLevel = round(map(vol, 0, 0.3, 0, 100));
this.rotorSpeedIncriment = volumeLevel / 290
if(break_space_and_time==false) sphere(999000)
this.rotorSpeedIncriment = .3
if(atmosphereColorChange!=239) atmosphereColorChange++
if(break_space_and_time==false) sphere(19100)
fill(138,210-atmosphereColorChange,239-atmosphereColorChange, 255-atmosphereColorChange/3)
if(break_space_and_time==false) sphere(19000)
ambientLight(138,210,239)
ambientMaterial(138,210,239)
if(break_space_and_time==false) sphere(19000)
playersPlane.accelerate(createVector(0, 0, 1), keyIsDown(40) ? 2500 : keyIsDown(38) ? 10000 : 5000, dt);
if(parkingBayZoneBGMusic.isPlaying() == false) parkingBayZoneBGMusic.play()
translate(820,-2000,-1000)
translate(1300,-400,-6000)
playersPlane.pos.y += velocity;
if (playersPlane.pos.y >= -1000)
playersPlane.pos.y = -1000;
for (let i = 0; i < 1; i++)
playerdistanceFromAircraftBayEntrance = dist(playersPlane.pos.x, playersPlane.pos.z, 0, 8100)
if((playerdistanceFromAircraftBayEntrance < 200))
if(break_space_and_time==false) sphere(10000)
if (key === 'm') mouseControl = !mouseControl;
if (key === "v") cockpitView = !cockpitView
if (key === ' ' && isGrounded)
perspective(75 * Math.PI / 180, width / height, 10, 32000000000);
const axisAngle = Quaternion.normalize(playersPlane.quat).div(playersPlane.quatVel).toAxisAngle(),
offset = p5.Vector.sub(playersPlane.pos, p5.Vector.mult(playersPlane.vel, 1 / 60)),
camPos = rodrigues(createVector(0, -45, keyIsDown(76) ? 165 : -165), axisAngle.axis, axisAngle.angle).add(offset),
camTarget = rodrigues(createVector(0, -45, 0), axisAngle.axis, axisAngle.angle).add(offset),
camNormal = rodrigues(createVector(0, 1, 0), axisAngle.axis, axisAngle.angle);
camera(camPos.x, camPos.y, camPos.z, camTarget.x, camTarget.y, camTarget.z, camNormal.x, camNormal.y, camNormal.z);