basti1012.bplaced.net

Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
    Hey, wisst ihr vielleicht wie ich mein Scoreboard zum laufen bringe? Schaffe es nicht das der Wert Score auf der Seite ausgegeben wird.

    Code

                                        
                                    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Snake</title>
    <style>
      *{
      margin:0;
      padding:0;
        box-sizing: border-box;
    }
    body{
      height:100vh;
      width:100%;
      padding:10px;
    }
    #loginbox{
      width:100%;
      display:flex;
      flex-direction:column;
    }
    .line{
      width:100%;
      display:flex;
    }
    label{
    width:200px;
      padding:5px;
    }
    #canvas{
      max-width:100%;
      max-height: calc(100vh - 20px);
      display:none;
    }
      #info{
        display:none;
      }
      #loginbox small{
        color:green;
        
        font-size:14px;
      }
      </style>
    </head>
    <body>
      <div id="loginbox">
        <div class="line"> <label>Name</label><input type="text" id="name" placeholder="Name..."></div>
          <div class="line"> 
      <label>Passwort</label><input type="text" id="pass" placeholder="Passwort..."><button id="go">Login</button>
        </div>
      <h1 id="info1">Gebe dein Name und Passwort ein um das Spiel zu starten<br>
        </h1> <small>Name:admin<br>Passwort:1234</small>
        
      </div>
        <canvas class="box-game" id="canvas" width="800" height="800"></canvas>
      
      
      
              <h1 id="info">Drücke die Pfeiltasten um das Spiel zu beginnen!</h1>
      
      
      
    <script>
    var passwort='1234';
    var login_name='admin';
    let canvas = document.getElementById('canvas');
    var inf=document.getElementById('info');  
    var helper=false;
      
      
            let ctx = canvas.getContext('2d');
            let rows = 20;
            let cols = 20;
            let snake = [
                {x: 2, y: 3}
            ];
            let cellWidth = canvas.width / cols;
            let cellHeight = canvas.height / rows;
            let direction = '';
            let foodCollected = false;
            var score = 0;
            //https://developer.mozilla.org/en-US/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Track_the_score_and_win
     
    
             
          
          
          
    document.getElementById('go').addEventListener('click',function(){
    let pa=document.getElementById('pass').value;
    let na=document.getElementById('name').value;
      if(login_name==na && passwort==pa){
      
     canvas.style.display='block';
     inf.style.display='block';
     document.getElementById('loginbox').style.display='none';
      
            setInterval(gameLoop, 135);
            placeFood();
            draw();
     
          
          
          
          
          
          
          
            function draw(){
                ctx.fillStyle = 'black';
                ctx.fillRect(0, 0, canvas.width, canvas.height);
                ctx.fillStyle = 'white';
                add(130, 170);
                add(160, 170);
                snake.forEach(part => add(part.x, part.y));
                ctx.fillStyle = 'yellow';
                add(food.x, food.y);
                drawScore();
                requestAnimationFrame(draw);
            }
            function placeFood(){
                let randomX = Math.floor(Math.random() * cols);
                let randomY = Math.floor(Math.random() * rows);
                food = {
                    x: randomX,
                    y: randomY
                }
            }
            function drawScore() {
                ctx.font = "16px Arial";
                ctx.fillStyle = "#0095DD";
                ctx.fillText("Score: "+score, 8, 20);
                if(foodCollected == true){
                    score = score +1;
                }
            }
            function testGameOver(){
                let firstPart = snake[0];
                let otherParts = snake.slice(1);
                let duplicatePart = otherParts.find(part => part.x == firstPart.x && part.y == firstPart.y);
                if (snake[0].x < 0){
                    snake[0].x = 19;
                }
                if (snake[0].x > cols - 1){
                    snake[0].x = 0;
                }
                if (snake[0].y < 0){
                    snake[0].y = 19;
                }
                if (snake[0].y > cols - 1){
                    snake[0].y = 0;
                }
                if (duplicatePart){
                    placeFood();
                    snake = [{
                        x: 19,
                        y: 3
                    }]
                    direction = '';
                }
            }
    
            function add(x, y){
                ctx.fillRect(x * cellWidth, y * cellHeight, cellWidth - 3, cellHeight - 3);
            }
            function shiftSnake(){
                for (let i = snake.length - 1; i > 0; i--) {
                    const part = snake[i];
                    const lastpart = snake[i - 1];
                    part.x = lastpart.x;
                    part.y = lastpart.y;
                }
            }
            function gameLoop(){
                testGameOver();
                if(foodCollected){
                    snake = [{x: snake[0].x, y: snake[0].y}, ...snake];
                    foodCollected = false;
                }
                drawScore();
                if(foodCollected){
                    score = score + plus
                }
                shiftSnake();
                if(direction == 'LEFT'){
                    snake[0].x--;
                }
                if(direction == 'RIGHT'){
                    snake[0].x++;
                }
                if(direction == 'UP'){
                    snake[0].y--;
                }
                if(direction == 'DOWN'){
                    snake[0].y++;
                }
                if(snake[0].x == food.x &&  snake[0].y == food.y){
                    foodCollected = true;
                    placeFood();
                }
            }
    document.addEventListener('keydown',function(e){
      
    
      if(helper==false){
        helper=true;
        inf.style.display='none';
      }
      
      
                if(e.keyCode == 37){
                    direction = 'LEFT';
                }
                if(e.keyCode == 38){
                    direction = 'UP';
                }
                if(e.keyCode == 39){
                    direction = 'RIGHT';
                }
                if(e.keyCode == 40){
                    direction = 'DOWN';
                }
            })
        
        
         }else{
        document.getElementById('info1').innerHTML='Passwort oder Name falsch';
      }
          })
        
        
        
        </script>
    </body>
    </html>