<!DOCTYPE html>
<html>
  <head>
    <title>Ping Pong</title>
    <style>
      body {
        font-family: sans-serif;
      }
      #game-container {
        width: 500px;
        height: 300px;
        position: relative;
        margin: auto;
        border: 4px solid #000;
      }
      #game-container > div {
        width: 20px;
        height: 20px;
        position: absolute;
        background-color: #f00;
        border-radius: 50%;
      }
      #paddle1 {
        top: 0px;
        left: 0px;
        height: 80px;
        width: 10px;
        background-color: #000;
      }
      #paddle2 {
        bottom: 0px;
        right: 0px;
        height: 80px;
        width: 10px;
        background-color: #000;
      }
    </style>
  </head>
  <body>
    <h1>Ping Pong</h1>
    <div id='game-container'>
      <div id='ball'></div>
      <div id='paddle1'></div>
      <div id='paddle2'></div>
    </div>
    <script>
      let ball = document.getElementById('ball');
      let paddle1 = document.getElementById('paddle1');
      let paddle2 = document.getElementById('paddle2');
      let gameContainer = document.getElementById('game-container');
      let xSpeed = 5;
      let ySpeed = 5;
      let xPosition = 250;
      let yPosition = 150;
<pre><code>  let gameLoop = () =&gt; {
    xPosition += xSpeed;
    yPosition += ySpeed;
    ball.style.top = `${yPosition}px`;
    ball.style.left = `${xPosition}px`;

    // Bounce off walls
    if (xPosition &gt;= gameContainer.offsetWidth - ball.offsetWidth) {
      xSpeed *= -1;
    }
    if (yPosition &gt;= gameContainer.offsetHeight - ball.offsetHeight) {
      ySpeed *= -1;
    }
    if (xPosition &lt;= 0) {
      xSpeed *= -1;
    }
    if (yPosition &lt;= 0) {
      ySpeed *= -1;
    }

    // Bounce off paddles
    if (
      xPosition &gt;= paddle2.offsetLeft - ball.offsetWidth &amp;&amp;
      xPosition &lt;= paddle2.offsetLeft + paddle2.offsetWidth &amp;&amp;
      yPosition &gt;= paddle2.offsetTop - ball.offsetHeight &amp;&amp;
      yPosition &lt;= paddle2.offsetTop + paddle2.offsetHeight
    ) {
      xSpeed *= -1;
    }
    if (
      xPosition &gt;= paddle1.offsetLeft - ball.offsetWidth &amp;&amp;
      xPosition &lt;= paddle1.offsetLeft + paddle1.offsetWidth &amp;&amp;
      yPosition &gt;= paddle1.offsetTop - ball.offsetHeight &amp;&amp;
      yPosition &lt;= paddle1.offsetTop + paddle1.offsetHeight
    ) {
      xSpeed *= -1;
    }
    requestAnimationFrame(gameLoop);
  };
  requestAnimationFrame(gameLoop);
&lt;/script&gt;
</code></pre>
  </body>
</html>
Simple HTML Ping Pong Game: No Instructions Needed

原文地址: https://www.cveoy.top/t/topic/lnik 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录