let powerUpCollected = false;
createCanvas(windowWidth, windowHeight, WEBGL);
playerPos = createVector(0, 0, 0);
gunPos = createVector(random(-500, 500), 0, random(-500, 500));
monsterPos = createVector(random(-500, 500), 0, random(-500, 500));
powerUpPos = createVector(random(-500, 500), 0, random(-500, 500));
rangerTowerPos = createVector(0, -50, 0);
let camX = cos(angleX) * 100;
let camZ = sin(angleX) * 100;
camera(playerPos.x, playerPos.y, playerPos.z + 200, playerPos.x + camX, playerPos.y, playerPos.z + camZ, 0, 1, 0);
translate(rangerTowerPos.x, rangerTowerPos.y, rangerTowerPos.z);
translate(gunPos.x, gunPos.y, gunPos.z);
translate(powerUpPos.x, powerUpPos.y, powerUpPos.z);
translate(monsterPos.x, monsterPos.y, monsterPos.z);
let direction = p5.Vector.sub(playerPos, monsterPos).setMag(0.5);
monsterPos.add(direction);
if (p5.Vector.dist(playerPos, gunPos) < 20) {
if (p5.Vector.dist(playerPos, powerUpPos) < 20) {
if (mouseIsPressed && hasGun && monsterAlive && p5.Vector.dist(playerPos, monsterPos) < 100) {
if (key === 'w') playerPos.z -= speed;
if (key === 's') playerPos.z += speed;
if (key === 'a') playerPos.x -= speed;
if (key === 'd') playerPos.x += speed;
angleX += (movedX * sensitivity);
angleY -= (movedY * sensitivity);
monsterPos = createVector(random(-500, 500), 0, random(-500, 500));