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

[Duda] disparo al blanco no funciona

Hola, lo hice igual al video, solo le cambie un nombre a una funcion pero no funciona, aqui dejo mi codigo.

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

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


        pincel.fillStyle= 'gray' ;
        pincel.fillRect(0,0,600,400);


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

        function limpiar(){
            pincel.clearRect(0,0,600,400);
        }

        var x = 0;
        var sentido = 1;
        function movimiento(){
            limpiar();
            if(x > 600) { 
                sentido = -1;    
            }else if (x < 0){ 
                sentido = 1;    
            }
            hacerCircunferencia(x,20,10);
            x = x + sentido;        
        }
        var xAlateorio;
        var yAlateorio;
        function movimiento2(){
            limpiar();
            xAlateorio = sorteo(600);
            yAlateorio = sorteo(400);
            crearObjetivo(xAlateorio,yAlateorio); 
            x++;       
        }



        function crearObjetivo(x,y){
            hacerCircunferencia(x,y,30,'red');
            hacerCircunferencia(x,y,20,'white');
            hacerCircunferencia(x,y,10,'red');
        }

        function sorteo(maximo){
            return Math.floor(Math.random()*maximo);
        }

        setInterval(movimiento2,3000);

        function disparar(evento){
            var x = evento.pageX - pantalla.offsetLeft;
            var y = evento.pageY - pantalla.offsetTop;

            if (
                (x < xAlateorio + radio) &&
                (x > xAlateorio - radio) &&
                (y < yAlateorio + radio) &&
                (y > yAlateorio - radio) ) {

                alert("Acertaste")
            }

        }

        pantalla.onclick = disparar;




    </script>
1 respuesta

Hola, como estas Erick? Te falta inicializar una variable global del radio. ejemplo arriba de todo despues del pincel var radio = 10; Mucho exito. Espero que te haya servido. Saludos!