xxxxxxxxxx
let myCamera;
let treeModel;
let duckPlaneModel;
let fantasyPaletteImage;
let trees = [];
function preload() {
treeModel = loadModel("treelightcolour.obj", true);
duckPlaneModel = loadModel("duckPlane.obj", true);
fantasyPaletteImage = loadImage("fantasy-24-1x.png")
}
function setupDuckPlane() {
duckPlane = {
pos: createVector(0, 0, 500),
vel: createVector(0, 0, -300),
turnStrength: 0
};
}
function setupForest() {
for (let i = 0; i < 1000; i++) {
let newTree = createTree()
trees.push(newTree);
}
}
function setup() {
createCanvas(windowWidth, windowHeight, WEBGL);
settings = {
cameraView: 2,
cameraFOVChoice: 0
}
setupDuckPlane();
setupForest();
setupCamera();
angleMode(DEGREES);
noStroke();
}
function draw() {
background("skyblue");
directionalLight(color(255, 235, 205), createVector(0.5, 0.5, -0.2));
ambientLight(180, 150, 150);
updateDuckPlane();
updateCamera();
drawGroundPlane();
drawRoad();
drawDuckPlane();
drawTrees();
recyclePastTrees()
}
function updateDuckPlane() {
const desiredX = map(mouseX, 0, width, -30, 30, true);
duckPlane.pos.x = lerp(desiredX,duckPlane.pos.x, 0.1);
// duckPlane.pos.x = lerp(duckPlane.pos.x,desiredX, 0.1);
const desiredY = map(mouseY, 0, height, -100, 30, true);
duckPlane.pos.y = lerp(duckPlane.pos.y, desiredY, 0.1);
duckPlane.pos.z += duckPlane.vel.z;
duckPlane.vel.z -= 1;
duckPlane.vel.limit(10);
}
function mousePressed() {
cycleCameraView()
}
function cycleCameraView() {
settings.cameraView = (settings.cameraView + 1) % 4;
}