zoukankan      html  css  js  c++  java
  • 前端学习笔记day17 h愤怒的小鸟

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            * {
                margin: 0px;
                padding: 0px;
            }
            #box {
                width: 800px;
                height: 600px;    
                position: relative;
                overflow: hidden;
            }
            #sky {
                width: 1600px;
                height: 600px;    
                background: url('images/sky.png') repeat-x;
                position: absolute;
            }
            #bird {
                width: 30px;
                height: 30px;
                background: url('./images/birds.png') -10px -10px no-repeat;
                position: absolute;
                top: 100px;
                left: 100px;
            }
        </style>
    
    </head>
    <body>
        <div id='box'>
            <div id='sky'></div>
            <div id='bird'></div>
            <div class='stick'></div>
        </div>
    
        <script>
            var box = document.getElementById('box');
            var sky = document.getElementById('sky');
            var bird = document.getElementById('bird');
            var stickBox = document.createElement('div');
            stickBox.id = 'stickBox';
            stickBox.style.position = 'absolute';
            stickBox.style.width = '400px';
            stickBox.style.height = '600px';
            // stickBox.style.background = 'rgba(255,192,203,0.7)';
            // stickBox.style.left = parseInt(box.offsetWidth / 2) + 'px';
            box.appendChild(stickBox);
            var running = true;
            var step = 10;
            var stepBird = 0;
    
            var stickWidth = 52;
            var stickNum = 4;
            var boxWidth = parseInt(box.offsetWidth);
    
            for(var i = 0;i < stickNum;i++) {
                var div = document.createElement('div');
                div.style.width = stickWidth + 'px';
                div.style.height = getHeight(200,300) + 'px';
                div.style.background = 'url(' + './images/pipe2.png' + ') no-repeat center bottom';
                div.style.position = 'absolute';
                div.style.left = parseInt(box.offsetWidth / 2) + (stickWidth + 180)*i + 'px';
                div.className = 'stickU';
                stickBox.appendChild(div);
    
                var divB = document.createElement('div');
                divB.style.width = stickWidth + 'px';
                divB.style.height = box.offsetHeight -170 - div.offsetHeight + 'px';
                divB.style.background = 'url(' + './images/pipe1.png' + ') no-repeat center top';
                divB.style.position = 'absolute';
                divB.style.left = parseInt(box.offsetWidth / 2) + (stickWidth + 180)*i + 'px';
                divB.style.top = div.offsetHeight + 170 + 'px';
                divB.className = 'stickB';
                stickBox.appendChild(divB);
                
            }
            var stick = document.getElementById('stickBox');
            var sticksU = document.getElementsByClassName('stickU');
            var sticksB = document.getElementsByClassName('stickB');
    
            timeId = setInterval(function(){
                var current = sky.offsetLeft;
                var currentBird = bird.offsetTop;
                // var currentStick = stickBox.offsetLeft;
                if(running){
                    //背景运动
                    current -= step;
                    if(current <= -box.offsetWidth){
                        current = 0;
                    }
                    sky.style.left = current + 'px';
    
                    // 柱子运动
                    // currentStick -= 3;
                    // if(currentStick <= -stickWidth) {
                    //     currentStick = box.offsetWidth;
                    // }
                    // stickBox.style.left = currentStick + 'px';
    
    
                    // 小鸟运动
                    stepBird +=1;
                    currentBird += stepBird;
                    bird.style.top = currentBird + 'px';
            
                    if(currentBird >= box.offsetHeight-bird.offsetHeight){
                        running = false;
                        bird.style.top = box.offsetHeight-bird.offsetHeight + 5 + 'px';
                        clearInterval(timeId);
                    }    
                    if(bird.offsetTop <= 15) {
                        running = false;
                        bird.style.top = 0 + 'px';
                        clearInterval(timeId);
                    }    
    
    
                    for(var i = 0;i < stickNum;i++) {
                        var currentStick = sticksU[i].offsetLeft;
                        currentStick -= 3;
                        if(currentStick <= -stickWidth) {
                            currentStick = box.offsetWidth;
                        }
                        // stickBox.style.left = currentStick + 'px';
                        sticksU[i].style.left = currentStick + 'px';
                        sticksB[i].style.left = currentStick + 'px';
    
                        var left = sticksU[i].offsetLeft + stickBox.offsetLeft -bird.offsetWidth;
                        var right = left + sticksU[i].offsetWidth;
                        var top = sticksB[i].offsetTop - bird.offsetHeight;
                        // var bottom = top + sticksB[i].offsetHeight;
                        if(bird.offsetLeft >= left && bird.offsetLeft <= right && bird.offsetTop <= sticksU[i].offsetHeight){
                            running = false;
                            clearInterval(timeId);
                        }    
    
                        if(bird.offsetLeft >= left && bird.offsetLeft <= right && bird.offsetTop >= top){
                            running = false;
                            clearInterval(timeId);
                        }    
                    } 
                            
                }
            },50)
    
            document.onclick = function() {
                stepBird -=10;
            }
            
            function getHeight(min,max) {
                return Math.floor(Math.random()*(max - min + 1)) +  min; 
            }
    
    
        </script>
    </body>
    </html>

    运行结果:

  • 相关阅读:
    asp.net访问 IIS 元数据库失败的问题
    asp中防sql注入代码
    android手机门户开发记录 (前言) skyCc
    jbpm4.4+ssh配置 skyCc
    Android开发之TabHost控件的使用 skyCc
    android 调用wcf skyCc
    LayoutInflater skyCc
    在Eclipse中配置tomcat . skyCc
    android 学习记录 webView skyCc
    lingerUI二级联动 skyCc
  • 原文地址:https://www.cnblogs.com/xuanxuanlove/p/10259369.html
Copyright © 2011-2022 走看看