Untitled

 avatar
unknown
plain_text
2 months ago
2.7 kB
1
Indexable
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Catch the Falling Object</title>
    <style>
        body {
            text-align: center;
            background-color: lightblue;
        }
        #gameArea {
            width: 400px;
            height: 500px;
            background: white;
            border: 2px solid black;
            position: relative;
            margin: auto;
            overflow: hidden;
        }
        .basket {
            width: 60px;
            height: 30px;
            background: brown;
            position: absolute;
            bottom: 10px;
            left: 170px;
        }
        .apple {
            width: 20px;
            height: 20px;
            background: red;
            border-radius: 50%;
            position: absolute;
        }
    </style>
</head>
<body>
    <h1>Catch the Falling Apples!</h1>
    <p>Move the basket with the left and right arrow keys.</p>
    <div id="gameArea">
        <div class="basket" id="basket"></div>
    </div>
    <script>
        const basket = document.getElementById("basket");
        const gameArea = document.getElementById("gameArea");
        let score = 0;

        document.addEventListener("keydown", (e) => {
            let left = parseInt(window.getComputedStyle(basket).getPropertyValue("left"));
            if (e.key === "ArrowLeft" && left > 0) {
                basket.style.left = left - 20 + "px";
            }
            if (e.key === "ArrowRight" && left < 340) {
                basket.style.left = left + 20 + "px";
            }
        });

        function createApple() {
            let apple = document.createElement("div");
            apple.classList.add("apple");
            apple.style.left = Math.random() * 380 + "px";
            gameArea.appendChild(apple);

            let fall = setInterval(() => {
                let appleTop = parseInt(window.getComputedStyle(apple).getPropertyValue("top") || "0");
                let basketLeft = parseInt(window.getComputedStyle(basket).getPropertyValue("left"));
                
                if (appleTop > 470 && appleTop < 500 && Math.abs(basketLeft - parseInt(apple.style.left)) < 40) {
                    score++;
                    apple.remove();
                    clearInterval(fall);
                } else if (appleTop > 480) {
                    apple.remove();
                    clearInterval(fall);
                } else {
                    apple.style.top = appleTop + 5 + "px";
                }
            }, 50);
        }
        
        setInterval(createApple, 1000);
    </script>
</body>
</html>
Editor is loading...
Leave a Comment