Javascript


Bollarna


Övningsuppgift: Skapa en enkel animerad boll

Beskrivning Skapa en enkel animation där en boll rör sig horisontellt över skärmen. Detta kommer att hjälpa er att förstå hur man skapar animationer i webbläsare med hjälp av JavaScript.

Krav

Använd ett HTML canvas-element för att rita bollen. Bollen ska starta från vänster och röra sig mot höger. När bollen når slutet av skärmen ska den börja om från vänster. Steg-för-Steg Skapa en HTML-sida med ett canvas-element.

 

Använd JavaScript för att hitta ditt canvas och skapa en context (det är så du ritar i canvas). Rita en cirkel på canvas-en som representerar din boll. Använd requestAnimationFrame för att uppdatera bollens position och rita den igen i en animation. Exempelkod:

 

 

Bollen ska studsa mot canvas:ens väggar.



Exempelkod
<!DOCTYPE html>
<html>
<head>
  <title>Studsande Boll</title>
</head>
<body>

  <canvas id="myCanvas" width="800" height="400" style="border:3px solid #000;"></canvas>

  <script>
    let canvas = document.getElementById("myCanvas");
    let ctx = canvas.getContext("2d");
   
    let x = 50;
    let y = 50;
    const radius = 20;
    let dx = 5;  // Horisontell hastighet
    let dy = 2;  // Vertikal hastighet
   
    function drawBall() {
      ctx.clearRect(0, 0, canvas.width, canvas.height);  // Rensa canvas
     
      // Rita bollen
      ctx.beginPath();
      ctx.arc(x, y, radius, 0, Math.PI*2);
      ctx.fillStyle = "#FF4500";
      ctx.fill();
      ctx.closePath();
     
      // Kolla om bollen når sidorna av skärmen och studsa
      if (x + dx < radius || x + dx > canvas.width - radius) {
        dx = -dx;
      }
     
      // Kolla om bollen når toppen eller botten av skärmen och studsa
      if (y + dy < radius || y + dy > canvas.height - radius) {
        dy = -dy;
      }
     
      x += dx;
      y += dy;
     
      requestAnimationFrame(drawBall);  // Uppdatera animationen
    }
   
    drawBall();  // Starta animationen
  </script>

</body>
</html>

Extra Utmanande Övningsuppgift: Två Studsande Bollar med Kollision





Lägg till en andra boll i din animation. De båda bollarna ska studsa mot väggarna, och även studsa mot varandra när de kolliderar.

Specifikation
Lägg till en andra boll som också rör sig och studsar.
Hantera kollisioner mellan de två bollarna så att de studsar mot varandra.

Ytterligare Steg
Skapa en andra boll med egen position och hastighet.
Lägg till kod för att detektera kollisioner mellan bollarna.
Uppdatera bollarnas hastigheter för att simulera en kollision.




Den här sidan designades av 21C: