I've been instructed to make a simple game in which click on an image increases your score and eventually allows upgrades. When I click the image, it displays the amount of clicks left the first time, however, subsequent times do not seem to work. Is this a problem with how my functions call each other?
Javascript
//Variables
var clicks = 0;
var level = 2;
var clickInterval = 1;
var holdClick = 0;
function imgClicked() { //Activated by clicking on image
var clicks = clicks + clickInterval; //Increasing clicks
upgradeCheck();
if (holdClick === 1) { //If holding down the image activated
window.onmousedown = holding();
}
}
function upgradeCheck() { //Check if eligible for new level
if (clicks > Math.pow(level, 2)) { //If clicks more than current level^2
level = level + 1; //Next level
upgrade();
} else { //If not
var clicksLeft = Math.pow(level, 2) - clicks; //Determine clicks until eligible
document.getElementById("toUpgrade").innerHTML = clicksLeft + " clicks left until upgrade"; //Display
}
}
function upgrade() { //Upgrading
document.getElementById("clickImg").src = "level" + level + ".png"; //Change to new level
var clickInterval = clickInterval * 2; //Increase points per click
if (Math.pow(level, 2) / clickInterval > 400) { //If it take more than 400 clicks to get to next level
var holdClick = 1; //Activate hold clicking
document.getElementById("message").innerHTML = "You can now hold down the image";
}
}
function holding() {
var clicks = clicks + clickInterval; //Adding more clicks
}
HTML
<p id="toUpgrade"></p>
<img id="clickImg" src="level2.png" onclick="imgClicked()" />
<p> id="message"></p>