modelParts = preloadTruckModel();
function preloadTruckModel() {
modelParts.body = loadModel('body2.obj');
modelParts.bumpers = loadModel('bumpers-etc1.obj');
modelParts.wheels = loadModel('wheels3.obj');
modelParts.windows = loadModel('windows2.obj');
modelParts.lightsFront = loadModel('lights-front.obj');
modelParts.lightsRear = loadModel('lights-rear.obj');
modelParts.plates = loadModel('plates.obj');
createCanvas(1112, 834, WEBGL);
truckPos = createVector(0, 0);
if (flip == 1) scale(1, -1);
orbitControl(5, 5, 0.01);
directionalLight(color(120, 100, 80), createVector(-0.8, -0.5, -0.2));
directionalLight(color(40, 40, 40), createVector(0.4, 0.3, 0.2));
ambientLight(180, 150, 150);
if (go == 1) moveTruck();
const facingChangeIdeal = map(mouseX, 0, width, 2, -2);
facing += facingChangeIdeal;
truckPos.add(p5.Vector.fromAngle(-radians(facing - 90), 3));
if (truckPos.mag() > 1000) {
truckPos = createVector(0, 0);
translate(truckPos.x, 0, truckPos.y)
model(modelParts.plates);
specularMaterial('skyblue');
model(modelParts.windows);
emissiveMaterial('white');
model(modelParts.lightsFront);
model(modelParts.lightsRear);
model(modelParts.bumpers);
function drawWheel(zOffset) {
translate(0, 0.3, zOffset);
if (go == 1) rotateX(frameCount * 4);
translate(0, wheelY, wheelZ)
model(modelParts.wheels);
if (key == 'g') go = 1 - go;
if (key == 's') save('pix.jpg');