Soy muy nuevo en la codificación, solo aprendí HTML y CSS hace aproximadamente un año y solo aprendí javascript hace aproximadamente una semana. Decidí crear un proyecto de tipo clicker de cookies para intentar mejorar mis habilidades de JS y todo funciona bien excepto por una cosa. Estas dos declaraciones if que tengo a continuación no se ejecutan juntas. Quiero hacer que ambos se ejecuten de modo que si el conteo de bananas es igual a 10,000, entonces debería agregar una sola granja y también cambiar los elementos html.
La razón por la que son dos sentencias if separadas es que tuve que agregar una segunda condición (!addFarm1) para verificar si una var es falsa y luego hacerla verdadera para que solo agregue la granja una vez en lugar de cada clic después de 10,000 conteos de bananas.
Cómo quiero que funcione es que una vez que el conteo de bananas llegue a 10000, se agrega una sola granja al conteo de granjas y TAMBIÉN cambia los elementos html para que coincidan con la 'actualización' y luego cambia el intervalo. Hay mucho más código, pero no sabía si debía publicarlo, así que solo publiqué las partes importantes, pero pregunte si necesita el resto del código para solucionarlo.
var addFarm1 = false; function countByTwo(num1) { for (let i = 0; i < num1; i++) { bananaCount += 2; } return bananaCount; } function addFarm(farmAdd) { farmCount = farmCount + farmAdd; farmCountText.textContent = farmCount; farmIncrementText.classList.remove('hidden'); farmIncrement = farmCount * 5; farmIncrementText.textContent = '+' + farmIncrement; setInterval(function() { bananaCount = bananaCount + farmIncrement; bananaCountText.textContent = bananaCount; }, 1000); } function bananaClick() { bananaCount += 1; if (bananaCount > 10000) { // this one to change the clicker image, text, and interval bananaClicked.textContent = 'Golden Banana Bunch (+15)'; banana.src = 'images/banana6.png'; countByTwo(3); } bananaCountText.textContent = bananaCount; } if (bananaCount > 10000 && !addFarm1) { // and this one to add one farm addFarm(1); addFarm1 = true; }Podrías hacer algo como:
if (bananaCount > 10000) { // this one to change the clicker image, text, and interval bananaClicked.textContent = 'Golden Banana Bunch (+15)'; banana.src = 'images/banana6.png'; countByTwo(3); if(!addFarm1) { addFarm(1); addFarm1 = true; } }Simplemente coloque ambas sentencias if en la función.
function bananaClick() { bananaCount += 1; if (bananaCount > 10000) { // this one to change the clicker image, text, and interval bananaClicked.textContent = 'Golden Banana Bunch (+15)'; banana.src = 'images/banana6.png'; countByTwo(3); } if (bananaCount > 10000 && !addFarm1) { // and this one to add one farm addFarm(1); addFarm1 = true; } bananaCountText.textContent = bananaCount; }