Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

acertar al objetivo modificado

Hola amigos , presento mi código funcionando correctamente .Le hice un par de medicaciones como por ejemplo :

  • Creé una variable tiempo para así modificar el tiempo desde esa variable.
  • EL objetivo aparecerá exactamente en el área del canvas y no saldrá cortado o nada por el estilo .Se calculó para que salga entero en el área correspondiente teniendo en cuenta el perímetro máximo del circulo mas grande
  • cuando el usuario acierte en el objetivo , además del mensaje que aparece , también en la consola va a parecer la coordenada en la que estaba el objetivo y la coordenada en la que acertó el usaurio
  • También cuando no acierte va aparecer en al consola un mensaje "fallaste"
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>

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


        <script>

            // Declarando las variables que vamos a usar en el programa

            var pantalla = document.querySelector("canvas"); // asocia el canvas
            var pincel = pantalla.getContext("2d");  // trabjamos en 2d 

            // variables globales: variables que se pueden utulizar en todo el còdigo



            var tiempo= 1000;
            var radio = 10;
            var xAleatorio;
            var yAleatorio;



            pincel.fillStyle = "pink"
            pincel.fillRect(0,0,600,400);


            function diseñarCircunferencia(x,y,radio,color){
                // esta funcion dibuja una circunferenica en el canvas, recibe parametros como la coordena x, y el radio y el color

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

            //fucion que me limpia el canvas y me lo deja en su estado incial
            function limpiarPantalla() { pincel.clearRect(0,0,600,400);   }



            function diseñarObejtivo(x,y){
                //esta funcion llama a la funcion diseñarCircunferencia() y recibe como parametros la coordena x,y para asì diujar el obejtivo 
                diseñarCircunferencia(x,y,radio +30,"red");
                diseñarCircunferencia(x,y,radio + 15,"white");
                diseñarCircunferencia(x,y,radio,"red"); 
            }


            function posicionAleatorio(min, max) {
                //esta funcion me genera un numero aleatorio , pasándole un numero min y max .Estos dos parametros corresponen al minimo y maximo tamaño del canvas

                var resultado;// varaiable local : variables que se usa en la funcion
                resultado = Math.floor(Math.random()* (max - min + 1 ) + min);
                return resultado;
            }



            function actualizarPantalla(){                             

                limpiarPantalla();    

                xAleatorio= posicionAleatorio(40,560);
                yAleatorio= posicionAleatorio(40,340);              

                //console.log("(X,Y) " + "("+ xAleatorio + ";" +  yAleatorio+ ")");
                diseñarObejtivo(xAleatorio,yAleatorio); 


            }

            setInterval(actualizarPantalla,tiempo);



            function disparar(evento){             


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


                console.log("COORDENA REAL: " + "(" + xAleatorio +  ";" + yAleatorio +")");



                if ((x < xAleatorio + radio) &&
                (x > xAleatorio - radio) &&
                (y < yAleatorio + radio) &&
                (y > yAleatorio - radio) ) {
                    console.log("COORDENA APUNTADA: " + "(" + x +  ";" + y +")");
                    alert("Tiro Certero");  }

                else{console.log("FALLASTE");}

            }


            pantalla.onclick=disparar;  


        </script>

    </body>
</
2 respuestas

Hola, Leonardo! Espero que estés muy bien.

Gracias por tu participación! Racalcamos que estas actividades sirven para priorizar tus conocimientos a partir de la práctica, por lo que no es necesario publicar tus ejercicios y resoluciones aqui en el foro!

Felicidades por tu dedicación hasta ahora, sigue adelante y no olvides que si tienes alguna duda sobre el contenido de los cursos, estaremos siempre aquí en el foro para ayudarte.

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

Excelente. felicitaciones