Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Proyecto] Proyecto Final

Este es mi proyecto final aplicando todo lo aprendido hasta el momento, pero hay un error que me gustaria si pudieran ayudarme a solucionarlo

<meta charset="UTF-8">

<h1>TIRO AL BLANCO</h1>

<label>Nombre  <input type="text" id="Name" name="Name" /></label>

<button>Guardar</button>

<br>

<canvas width = "600" height="400"></canvas>

<script>

var pantalla = document.querySelector("canvas");
var pincel = pantalla.getContext("2d");
var button = document.querySelector("button");
var nombre = document.querySelector("input");

    pincel.fillStyle = "lightgreen";
    pincel.fillRect(0,0,600,350);
    pincel.strokeStyle = "black";
    pincel.strokeRect(0,0,600,350);
    pincel.fillStyle = "lightgrey";
    pincel.fillRect(0,350,600,250);
    pincel.strokeStyle = "black";
    pincel.strokeRect(0,350,600,250);

function crearCirculo(x,y,radio,color) {

    pincel.fillStyle = color
    pincel.beginPath();
    pincel.arc(x,y,radio,0,2*Math.PI);
    pincel.fill();

}

function numAleatorio(n) {

    return parseInt(Math.floor(Math.random()*n));

}


var radioBlanco = 8;
var xRandom
var yRandom
var puntajeInicial = 0;

function dibujarBlanco() {

    xRandom = numAleatorio(600);
    yRandom = numAleatorio(350 - (radioBlanco + 20));
    crearCirculo(xRandom,yRandom,radioBlanco + 12,"red");
    crearCirculo(xRandom,yRandom,radioBlanco + 6,"white");
    crearCirculo(xRandom,yRandom,radioBlanco,"red");

    }


function limpiarPantalla() {

    pincel.clearRect(0,0,600,350 - radioBlanco)
    pincel.fillStyle = "lightgreen"
    pincel.fillRect(0,0,600,350 - radioBlanco)
}

function moverBlanco() {

    limpiarPantalla()
    dibujarBlanco()
    console.log("fa")
}

function escribirTexto(texto,x,y) {

    pincel.font = "20px Arial";    
    pincel.fillStyle = "black";
    pincel.fillText(texto,x,y);

}

function iniciarJuego() {

    escribirTexto(nombre.value,250,380);
    escribirTexto(puntajeInicial,350,380)
    escribirTexto(contador,550,380)
    setInterval(moverBlanco,1000);    
    setInterval(aumentarContador,1000)
}

function disparar(evento) {

    var x = evento.pageX - pantalla.offsetLeft;
    var y = evento.pageY - pantalla.offsetTop;

    if ((x < xRandom + radioBlanco) &&
        (x > xRandom - radioBlanco) &&
        (y < yRandom + radioBlanco) &&
        (y > yRandom - radioBlanco)) {

        aumentarPuentaje()
    }

}

function aumentarPuentaje() {



    if (puntajeInicial == 5) {


    alert("GANASTE en: " + contador + " segundos")
    pincel.clearRect(350,360,50,50);
    pincel.fillStyle = "lightgrey";
    pincel.fillRect(350,360,50,50);
    escribirTexto(puntajeInicial,350,380)
    puntajeInicial = 0

    }

    else { 


    puntajeInicial++
    pincel.clearRect(350,360,50,50);
    pincel.fillStyle = "lightgrey";
    pincel.fillRect(350,360,50,50);
    escribirTexto(puntajeInicial,350,380);

    }


}

var contador = 0

function aumentarContador() {

    if(puntajeInicial < 5) {

        contador++
        pincel.clearRect(550,360,50,240);
        pincel.fillStyle = "lightgrey";
        pincel.fillRect(550,360,50,240);
        escribirTexto(contador,550,380);
    }

    else {

        contador = 0
        pincel.clearRect(550,360,50,240);
        pincel.fillStyle = "lightgrey";
        pincel.fillRect(550,360,50,240);
        escribirTexto(contador,550,380)

    }
}

nombre.focus()

pantalla.onclick = disparar;
button.onclick = iniciarJuego;

</script>
1 respuesta

Hola, felicidades por tu dedicación en el curso. Solo quería hacerte saber que no es necesario publicar todos los ejercicios que hagas en el foro. En el foro, puedes publicar tus preguntas y dudas específicas sobre algún tema o ejercicio y recibir respuestas útiles. En Discord puedes interactuar en vivo con otros alumnos y instructores y es un buen lugar para compartir lo que estás haciendo y aprendiendo. Recordamos que no es obligatorio responder a ningún ejercicio en el foro, ellos no suman puntos o son usados como criterio para el avance en el programa. Pedimos que siempre que sea posible, por favor etiquetes tu tópico para que sea más sencillo identificar si es una duda, sugerencia, etc. ¡Deseamos que puedas cumplir con todos tus objetivos y tener éxito en tus estudios, saludos!

Si este post te ayudó, por favor marca como solucionado ✓ ¡Continúa con tus estudios!