Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Add an score counter in JavaScript

During a course I was taught how to develop a little game, but I wanted to take it to the next level and add a score counter.
This is the best that I´ve got so far, but the problem is that every time the score increase, the game disappears and the only thing the screen shows is the score.

<meta charset="utf-8">

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

<h1>Puntos totales:</h1>
<p id="score"></p>


<script type="text/javascript">

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


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

var radio = 15;
var xAleatorio;
var yAleatorio;
var score = 0


function disenharCircunferencia(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,600); //limpiar el canvas, se le pasan las coordenadas del canvas

}   


var x = 0


function disenharObjetivo(x,y){

    disenharCircunferencia(x,y,radio+30,"red");
    disenharCircunferencia(x,y,radio+15,"white");
    disenharCircunferencia(x,y,radio,"red");

}

function sortearPosicion(maximo){

    return Math.floor(Math.random()*maximo); //redondea para abajo

}

function actualizarPantalla(){

    limpiarPantalla();
    xAleatorio = sortearPosicion(600);
    yAleatorio = sortearPosicion(400);
    disenharObjetivo(xAleatorio,yAleatorio);


}

setInterval(actualizarPantalla,5000); //Llamar funciones cada cierto tiempo (en este caso cada 5 milisegundos)

function dispararCentro(evento){

    var x = evento.pageX - pantalla.offsetLeft; //capturo la coordenada x y le resto el offset
    var y = evento.pageY - pantalla.offsetTop; //capturo la coordenada y y le resto el offset

    console.log(evento.pageX)

    if ( (x < xAleatorio + radio) && (x > xAleatorio - radio) && (y < yAleatorio + radio) && (y > yAleatorio - radio) ) {

        score = score + 20;
        document.write(score);
        alert("Tiro certero. Puntos acumulados " + score);

    }
    else if ( (x < xAleatorio + (radio+15)) && (x > xAleatorio - (radio+15)) && (y < yAleatorio + (radio+15)) && (y > yAleatorio - (radio+15)) ) {

        score = score + 10;
        document.write(score);
        alert("Tiro certero. Puntos acumulados " + score);

    } 
    else if ( (x < xAleatorio + (radio+30)) && (x > xAleatorio - (radio+30)) && (y < yAleatorio + (radio+30)) && (y > yAleatorio - (radio+30)) ) {

        score = score + 5;
        document.write(score);
        alert("Tiro certero. Puntos acumulados " + score);
    }
}


pantalla.onclick = dispararCentro;





</script> 

>Solution :

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

When you document.write, you’re replacing the contents of the document, discarding everything. Considering you already have an element with id="score", just use that, and replace every

document.write(score);

with, for example,

document.querySelector("#score").textContent = score;
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading