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

[Duda] No es igual al del video pero funciona

Normalmente intento hacer el programa por mi cuenta antes de ver la clase, esta vez me salio diferente pero funciona. Mi duda es: Esta bien mi código o es mala praxis?

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

<script>
    var pantalla = document.querySelector("canvas");
    var pincel = pantalla.getContext("2d");

    pincel.fillStyle = "lightgrey";
    pincel.fillRect(0,0,600,400);
    var radio = 10

    function dibujarCirculo(x,y,radio,color){
        pincel.fillStyle = color;
        pincel.beginPath();
        pincel.arc(x,y,radio,0,2*Math.PI);
        pincel.fill();
    }
    function limpiarPantalla() {
        pincel.clearRect(0,0,600,400);
    }
    function actualizarPantalla() {
        var xAleatorio = Math.round(Math.random()*600);
        var yAleatorio = Math.round(Math.random()*400);
        limpiarPantalla();
        dibujarObjetivo(xAleatorio,yAleatorio,);    
        function disparar(evento) {
        var x = evento.pageX - pantalla.offsetLeft;
        var y = evento.pageY - pantalla.offsetTop;   
        if ((x < xAleatorio + radio) &&
            (x > xAleatorio - radio) &&
            (y < yAleatorio + radio) &&
            (y > yAleatorio - radio) ) {

        alert("Buen tiro");

        } 

    }
        pantalla.onclick = disparar;
    }
    function dibujarObjetivo(x,y){
        dibujarCirculo(x,y,radio + 20,"red")
        dibujarCirculo(x,y,radio + 10,"white")
        dibujarCirculo(x,y,radio,"red")
    }



    setInterval(actualizarPantalla,1000);  
</script>
1 respuesta

¡Hola Jesús!

Es genial que hayas intentado hacer el programa por tu cuenta antes de ver la clase. En cuanto a tu código, puedo decir que funciona correctamente y no veo nada malo en él. De hecho, es una forma diferente de resolver el problema y eso es genial, significa que estás pensando fuera de la caja.

Sin embargo, si quieres mejorar tu código, podrías intentar hacerlo más eficiente. Por ejemplo, podrías mover la función disparar() fuera de la función actualizarPantalla() para que no se cree cada vez que se actualiza la pantalla.

En resumen, tu código está bien y funciona correctamente. ¡Sigue practicando y experimentando!

¡Espero haber ayudado y buenos estudios!

¡Saludos!

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