JavaScript空中避難小游戲

前言:最近在看js中的事件与纽,之前也一直有用到事件侣签,用到最多的就是onclick單擊事件,還有填寫表單信息時的用到的onfocus聚焦時間急迂,和onblur事件影所,最近看到了onmousemove鼠標移動事件,覺得很神奇僚碎,就突然很想寫一個小游戲猴娩,用到了setInterval函數(shù)。游戲的功能也很簡單勺阐,就是天上掉紙片卷中,小人兒要不停的躲,一旦紙片和小人兒相撞渊抽,就會game over蟆豫!代碼如下:

<!DOCTYPE html>

<html>

<head>

<style>
    .move
    {
        margin-top: 0px;
        width:40px;
        height: 50px;
        background: #ff0;
        position:absolute;
        z-index: 999;
    }


    .self
    {
        width:40px;
        height: 50px;
        background: #f0f;
        position:absolute;
        margin-top: 600px;
        margin-left: 643px;
        z-index: 999;
    }

    .self img
    {
        width:40px;
        height: 50px;
        border-radius: 20px;
    }

</style>

<title>圖圖up up</title>  

</head>

<body onload="moveDiv()">
    <!--12個div就是空中的小紙片-->
    <div class="move" style="margin-left:100px">
        
    </div>

    <div class="move" style="margin-left:200px">
        
    </div>
    <div class="move" style="margin-left:300px">
        
    </div>
    <div class="move" style="margin-left:400px">
        
    </div>

    <div class="move" style="margin-left:500px">
        
    </div>
    <div class="move" style="margin-left:600px">
        
    </div>
    <div class="move" style="margin-left:700px">
        
    </div>
    <div class="move" style="margin-left:800px">
        
    </div>

    <div class="move" style="margin-left:900px">
        
    </div>
    <div class="move" style="margin-left:1000px">
        
    </div>
    <div class="move" style="margin-left:1100px">
        
    </div>
    <div class="move" style="margin-left:1200px">
        
    </div>

    <!--小人兒用一張圖片代替-->
    <div id="self" class="self">
        <img src="images/tutu.jpg">
    </div>

</body>

<script type="text/javascript">
    
    var alldiv = document.querySelectorAll('.move');
    var selfdiv = document.getElementById("self");
    var timer, flag;
    function moveItem()
    {
        //用隨機數(shù)決定哪一張紙片掉落
        for (var j = 0; j < Math.round(Math.random()*11); j++) 
        {
        
            var i = Math.round(Math.random()*11);
            alldiv[i].style.top = alldiv[i].offsetTop + 20 +"px";

            //掉落過程中改變紙片的顏色
            var rgb='rgb('+Math.floor(Math.random()*255)+','
                     +Math.floor(Math.random()*255)+','
                     +Math.floor(Math.random()*255)+')';
            alldiv[i].style.backgroundColor = rgb;

            if (alldiv[i].offsetTop >= 600)
            {
                alldiv[i].style.top  = "50px"; //當紙片落到底部,又重新回到起點
            }
        }
        
    }

    function moveDiv()
    {
        timer = setInterval(moveItem,20); //每隔20ms掉落
        flag = setInterval(meeting,1); //間隔1ms判斷是否相撞
    }

    var selfdiv = document.getElementById("self");
    selfdiv.onmousedown = function(e) //鼠標點擊小人兒開始移動
    {
        document.onmousemove = function(e) //小人兒跟著鼠標移動
        {
            if (e.clientY > 600)
            {
                selfdiv.style.marginTop = "600px"; //如果到達屏幕底部就不再往下
            }
            else if(e.clientX > 1300)
            {
                selfdiv.style.marginLeft = "1300px"; //到達最右部就回到不再往右
            }
            else
            {
                //小人兒的位置始終等于鼠標的位置
                selfdiv.style.marginTop = e.clientY + "px";
                selfdiv.style.marginLeft = e.clientX + "px";
            }
        }
    }

    function meeting()
    {
        for (var i = 0; i < alldiv.length; i++)
        {
            //判斷是否相撞
            if (Math.abs(alldiv[i].offsetTop-selfdiv.offsetTop) <= 50 &&  
                Math.abs(alldiv[i].offsetLeft-selfdiv.offsetLeft) <= 40)
            {
                clearInterval(flag);
                clearInterval(timer);
                alert("一不小心撞到了@撩啤J酢!游戲結(jié)束");
            }
        }
    }
    
</script>

</html>

效果如圖:

gif5新文件(1).gif

全部的代碼就這些愤估,動圖做的效果不是很好帮辟,第一次做動圖,發(fā)現(xiàn)有很多在線網(wǎng)站都可以玩焰,做起來很簡單由驹,還是免費的,開心N粼啊B闹炉!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市润樱,隨后出現(xiàn)的幾起案子渣触,更是在濱河造成了極大的恐慌,老刑警劉巖壹若,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嗅钻,死亡現(xiàn)場離奇詭異,居然都是意外死亡店展,警方通過查閱死者的電腦和手機养篓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赂蕴,“玉大人柳弄,你說我怎么就攤上這事「潘担” “怎么了碧注?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長糖赔。 經(jīng)常有香客問我萍丐,道長,這世上最難降的妖魔是什么放典? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任逝变,我火速辦了婚禮,結(jié)果婚禮上奋构,老公的妹妹穿的比我還像新娘壳影。我一直安慰自己,他們只是感情好弥臼,可當我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布宴咧。 她就那樣靜靜地躺著,像睡著了一般醋火。 火紅的嫁衣襯著肌膚如雪悠汽。 梳的紋絲不亂的頭發(fā)上箱吕,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天芥驳,我揣著相機與錄音,去河邊找鬼茬高。 笑死兆旬,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的怎栽。 我是一名探鬼主播丽猬,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼宿饱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了脚祟?” 一聲冷哼從身側(cè)響起谬以,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎由桌,沒想到半個月后为黎,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡行您,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年铭乾,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片娃循。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡炕檩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出捌斧,到底是詐尸還是另有隱情笛质,我是刑警寧澤,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布捞蚂,位于F島的核電站经瓷,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏洞难。R本人自食惡果不足惜舆吮,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望队贱。 院中可真熱鬧色冀,春花似錦、人聲如沸柱嫌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽编丘。三九已至与学,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間嘉抓,已是汗流浹背索守。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留抑片,地道東北人卵佛。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親截汪。 傳聞我的和親對象是個殘疾皇子疾牲,可洞房花燭夜當晚...
    茶點故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 原創(chuàng)作品,允許轉(zhuǎn)載衙解,轉(zhuǎn)載時請務必以超鏈接形式標明文章 原始出處 阳柔、作者信息和本聲明。否則將追究法律責任蚓峦。http:...
    狼之獨步閱讀 3,141評論 0 2
  • [TOC] 課程內(nèi)容回顧 什么是JavaScript盔沫,有幾個部分組成腳本語言,瀏覽器枫匾,ECMAScript BO...
    chcvn閱讀 494評論 0 0
  • 第1章 系好安全帶,準備啟航 1.1讓你認識JS 1.1.1 JavaScript能做什么架诞?增強頁面動態(tài)效果(...
    張中華閱讀 1,360評論 4 10
  • 一、JS前言 (1)認識JS 也許你已經(jīng)了解HTML標記(也稱為結(jié)構(gòu))干茉,知道了CSS樣式(也稱為表示)谴忧,會使用HT...
    凜0_0閱讀 2,755評論 0 8
  • CHOCK虹閱讀 232評論 3 1