欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

原生js制作动画射击小游戏

程序员文章站 2022-05-23 11:01:17
...
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        body {
            background-color: #ccc;
        }

        #range {
            position: absolute;
            left: 0;
            top: 0;
            background: url(space.jpg);
            background-size: cover;
            cursor: crosshair;
            width: 100%;
            height: 300px;
        }

        #img1 {
            position: absolute;
            border: none;
            left: 0;
            top: 100px;
            padding: 10px;
        }

        #score {
            color: white;
            padding: 10px;
        }
    </style>
</head>

<body>
    <div id="range">
        <div id="score"></div>
        <img src="ufo.png" alt="" id="img1">
    </div>
    <script>
        var timer = null;
        var el = null;
        var score = 0; // 得分:射中的次数
        var shots = 0; // 总的射击数
        function moveIt() {

            // 在元素到达屏幕最右侧时把它重新移动到屏幕最左侧
            if (parseInt(el.style.left) > (screen.width - 50)) {
                el.style.left = 0;
            }

            // 每次把指定元素向右移动6个像素
            el.style.left = parseInt(el.style.left) + 6 + 'px';

            // 垂直方向的变化,top属性值从 100-80= 20(px) 变化到 100+80 = 180(px)
            el.style.top = 100 + (80 * Math.sin(parseInt(el.style.left) / 50)) + "px"

            // 利用setTimeout()每隔25毫秒调用自己一次
            timer = setTimeout(moveIt, 25)
        }

        function scoreUp() {
            score++;
        }

        function scoreboard() {
            document.querySelector("#score").innerHTML = "Shots:" + shots + " Score:" + score;
        }
        window.onload = function () {
            el = document.querySelector("#img1")

            // 当动画元素(ufo图片)上检测到鼠标点击时,就会调用函数scoreUp(),增加用户得分。
            el.onclick = scoreUp;

            // 通过鼠标点击实现射击,在range范围内,鼠标指针会变成十字符号
            document.querySelector("#range").onclick = function () {
                shots++;
                scoreboard();
            }
            scoreboard()
            el.style.left = "50px"
            moveIt();
        }
    </script>
</body>

</html>
相关标签: 回顾