js 躲避球游戏

js做的躲避球游戏

代码参见:

<!DOCTYPE html>
<html>
<head>
    <meta charset="{CHARSET}">
    <title></title>
    <style>
        * {
            margin: 0,0,0,0;
        }

        .button-area {
            margin-left: auto;
            margin-right: auto;
            width: 440px;
            min-height: 20px;
            z-index: 100;
        }

            .button-area div {
                margin-top: 20px;
                color: cornflowerblue;
                width: 100%;
                text-align: center;
                font-size: 25px;
            }

        .button {
            margin-top: 40px;
            margin-left: 40px;
            margin-right: 40px;
            min-width: 60px;
            background-color: burlywood;
            height: 30px;
            float: left;
            z-index: 100;
        }

        #back {
            margin-left: auto;
            margin-right: auto;
            width: 960px;
            height: 450px;
            outline-style: dashed;
            overflow: hidden;
        }

        .back {
            width: 960px;
            height: 450px;
            background-image: url(back.jpg);
            float: left;
        }

        #tubaobao {
            margin-left: 935px;
            margin-top: 0px;
            background-image: url("TBB.jpg");
            width: 25px;
            height: 30px;
            position: absolute;
        }

        .mushrooms {
            margin-left: 880px;
            margin-top: 0px;
            background-image: url("MR.jpg");
            width: 20px;
            height: 20px;
            position: absolute;
            z-index: 0;
        }

        #player {
            margin-left: 0px;
            margin-top: 0px;
            background-image: url("PE.jpg");
            width: 30px;
            height: 30px;
            position: absolute;
        }

        #GameOver {
            margin-left: auto;
            margin-right: auto;
            width: 960px;
            height: 450px;
            background-color: rgb(114,66,46);
            outline-style: double;
            position: relative;
            text-align: center;
            display: none;
        }

            #GameOver h1 {
                color: red;
                width: 960px;
                margin-top: 200px;
                text-align: center;
                z-index: 2;
                font-size: 80px;
                position: absolute;
            }

            #GameOver .tm {
                background-image: url("TM.jpg");
                width: 300px;
                height: 340px;
                z-index: 1;
                margin-left: 330px;
                margin-top: 60px;
                position: absolute;
            }
    </style>
</head>
<body>
    <div>
        <div id="back" style="position:relative">
            <div id="back_img" style="position:absolute;width:1920px">
                <div class="back"></div>
                <div class="back"></div>
            </div>
            <div style="position:absolute">
                <div id="tubaobao"></div>
                <div id="player"></div>
            </div>
        </div>

        <div id="GameOver">
            <div class="tm"></div>
            <h1>Game   Over</h1>
        </div>
        <div class="button-area">
            <div>
                分数:<span id="record">0</span>
            </div>
            <button class="button" onmousedown="keydown(0)" id="up-button">上</button>
            <button class="button" onmousedown="keydown(1)" id="down-button">下</button>
            <button class="button" onclick="location.reload()">重新开始</button>
        </div>
    </div>
    <button style="margin-top:1000px" class="button" onclick="(function () { util.gameOver = function () { }})()" id="down-button">无敌</button>

</body>
</html>
<script>
    var gameOver = document.getElementById("GameOver");
    var back = document.getElementById("back");
    var back_img = document.getElementById("back_img");
    //player
    var player = document.getElementById("player");
    player.intervalObj = null;
    player.runSize = 0;
    player.move = function () {
        util.move(player, 450);
    }
    var keydown = function (keyCode) {
        if (keyCode == 0) {
            //锁定当前按键
            player.runSize = -5;
        } else if (keyCode == 1) {
            //锁定当前按键
            player.runSize = 5;
        }
        player.intervalObj = setInterval(player.move, 10);
    };
    document.onmouseup = function () {
        clearInterval(player.intervalObj);
    }

    var backTop = back.offsetTop;
    var backLeft = back.offsetLeft;
    var mushrooms = [];
    mushrooms.time = 200;
    mushrooms.record = 0;
    mushrooms.interval = 700;
    mushrooms.speed = 5;
    mushrooms.pushMr = function () {
        var mr = document.createElement(‘div‘);
        mr.className = "mushrooms";
        mr.style.top = tbb.offsetTop + tbb.offsetHeight / 2 + "px";
        back.appendChild(mr);
        mushrooms.push(mr);
    }

    mushrooms.move = function () {
        mushrooms.forEach(function (value, index, array) {
            value.style.marginLeft = value.offsetLeft - mushrooms.speed + "px";
            if (value.offsetLeft <= -20) {
                back.removeChild(value);
                mushrooms.splice(index, 1);
                mushrooms.record++;
                document.getElementById(‘record‘).innerText = mushrooms.record;
            } else if (value.offsetLeft >= -10 && value.offsetLeft <= 20) {
                var pTop = player.offsetTop
                if (value.offsetTop > pTop - 20 && value.offsetTop < pTop + 30) {
                    util.gameOver();
                }
            }
        })
        mushrooms.time--
        if (mushrooms.time <= 0) {
            mushrooms.time = 500;
            mushrooms.interval = (mushrooms.interval - 100) > 50 ? (mushrooms.interval - 100) : 50;
            mushrooms.speed = mushrooms.speed + 1;
            clearInterval(pushM);
            pushM = setInterval(mushrooms.pushMr, mushrooms.interval);
        }
        back_img.style.marginLeft = back_img.offsetLeft - mushrooms.speed + "px";
        if (back_img.offsetLeft <= -960) {
            back_img.style.marginLeft = 0 + "px";
        }
    }
    //兔宝宝
    var tbb = document.getElementById("tubaobao");
    tbb.runTime = 20;
    tbb.runSize = 0;
    tbb.move = function () {
        var arr = [-5, -5, -5, -5, 0, 0, 5, 5, 10, 10, 5];
        if (tbb.runTime > 0) {
            tbb.runTime--;
            util.move(tbb, 450);
        } else {
            tbb.runTime = 2;
            tbb.runSize = ((mushrooms.record > 50 ? mushrooms.record : 50) / 50) * arr[parseInt(Math.random() * arr.length)];
            util.move(tbb, 450);
        }
        mushrooms.move();
    }
    //util
    var util = {
        gameOver: function () {
            clearInterval(tbbM);
            clearInterval(pushM);
            back.remove();
            gameOver.style.display = "block";
        },
        move: function (moveObj, size) {
            var nowT = moveObj.offsetTop;
            var targetT = moveObj.offsetTop + moveObj.runSize;
            if (targetT < 0) {
                targetT = size - moveObj.offsetHeight;
            } else if (targetT > size - moveObj.offsetHeight) {
                targetT = 0;
            }
            moveObj.style.top = (targetT) + "px";
        }
    };

    //test
    var tbbM = setInterval(tbb.move, 20);
    var pushM = setInterval(mushrooms.pushMr, mushrooms.interval);
</script>

游戏压缩文件:https://pan.baidu.com/s/1cNXhCE

乐一乐:

1、“老板,这件夹克多少钱?”
“1000”
“卧槽,这么贵,那旁边这个呢?”
“那件新款,两个卧槽。”

2、“老板,这件衣服多少钱?”
“15块!”
“老板你会不会做生意啊?还让不让别人砍价了!”

3、到菜市场买菜,看到一个孩子在看摊,我问:“一只鸡多少钱?”
那孩子回答:“23。”
我又问:“两只鸡多少钱?”
孩子愣了一下,一时间没算过来,急中生智大吼一声:“一次只能买一只!”

4、网上买了双雪地靴,发现穿上不好看,抱怨道:看模特穿上挺好看的,自己穿上真难看。
老公:淘宝上的雪地靴模特都不穿裤子,穿起来当然好看了!

原文地址:https://www.cnblogs.com/zwcai/p/8426721.html

时间: 2024-08-02 09:41:21

js 躲避球游戏的相关文章

JS贪吃蛇游戏

<!DOCTYPE html><html> <head>    <meta charset="utf-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge">    <title>JS贪吃蛇游戏</title>    <style>    * {        margin: 0;    

Vue.js实现拼图游戏

Vue.js实现拼图游戏 之前写过一篇<基于Vue.js的表格分页组件>的文章,主要介绍了Vue组件的编写方法,有兴趣的可以访问这里进行阅读:http://www.cnblogs.com/luozhihao/p/5516065.html 前言 为了进一步让大家了解Vue.js的神奇魅力,了解Vue.js的一种以数据为驱动的理念,本文主要利用Vue实现了一个数字拼图游戏,其原理并不是很复杂,效果图如下: demo展示地址为:https://luozhihao.github.io/vue-puzz

JS开发HTML5游戏《神奇的六边形》(四)

近期出现一款魔性的消除类HTML5游戏<神奇的六边形>,今天我们一起来看看如何通过开源免费的青瓷引擎(www.zuoyouxi.com)来实现这款游戏. (点击图片可进入游戏体验) 因内容太多,为方便大家阅读,所以分成四部分来讲解. 本文为第四部分,主要包括: 16.分数往上飘动画 17.形状飞入动画 18.其他动画表现添加 19.游戏结束界面 20. 添加LOGO 21. 渲染优化 若要一次性查看所有文档,也可点击这里. 十六. 分数往上飘的动画 在表现加分时,分数会有个缩放的效果,然后往上

【Unity3D】利用物体碰撞检测、键盘输入处理完成平衡球游戏

物体碰撞检测是游戏编程里面非常常用的功能,一旦碰到就怎么怎么样,比如掉血等.Unity3D直接就提供了物体碰撞检测的接口,实现起来很方便.借此功能,完成了一个平衡球游戏,同时说明Unity3D的物体碰撞检测.键盘输入处理的检测的使用.游戏如下图所示: 一.场景布置 1.UI方面布置如下所示,基本就是<[Unity3D]对话框.隐藏与显示.拖拽>(点击打开链接)的内容,不赘述了.StartModal和GameoverModal本质是Image,将他们重叠在一起,一会儿将用脚本隐藏Gameover

JS经典拼板游戏

原文链接:http://www.guimigame.com/thread-49-1-1.html,对于代码有什么不明白的地方,可以到这里给我发问哦! 效果演示 废话不多说了,直接上代码! <!doctype html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>JS重现

各个小组对“躲避小球”游戏的评价

1)318小分队:三人行组他们设计的是一个躲球的小游戏,适合休闲打发时间,基本完成了已经,做的很有趣. 但希望他们把游戏中加一些特效,界面做的更生动有趣些,再加上联网模块,可以与好友一起玩,分享自己 的胜利,另外把难度调低一些,永远让玩家可以继续,但难度会变高随时间. 2五人行:和之前的7-Magic同属于游戏类软件,所以难免要从界面,游戏形式,游戏梯度设定,背景等方面惊醒综合分析.躲避小球软件中设计了三个难度,但是感觉并没有很好的区分开:最关键的一点在于最低难度的管卡难度都不小,不利于吸引用户

原生js canvas 碰撞游戏的开发笔记2

随着碰撞游戏一的开发成功! 我们的ae小伙子也大胆尝试很多新方案h5.. 所以就诞生了下面个比较变态的游戏. 先体验下吧 类似坦克大战 开发的过程异常的艰辛 不过也很好玩 修正了很多一的错误 和改良了一些思路 1. 原先的canvas的_this存在的全局污染 改良后避免了99% 为了获取windowtouch属性 还是有1%的 希望在三修正 2. 所有的递归函数变缓动函数requestAnimationFrame 增强性能 使动画更流畅 3. 数据和图像分离的更彻底 结构更清晰 对象的创建 对

我的项目 6 js实现翻牌游戏

在我的项目中需要在里面添加一个翻牌游戏,就研究了一下,在这里只实现了基本的效果.不多说,和大家分享一下. 说到翻牌游戏,大致分为以下几个步骤: 绘制正反面卡牌-------------->洗牌----------------------->翻牌------------------->翻牌判断 这里面应用的一些图片,,,,,,额额额额,,,大家就自己下两个试试,这里也提供不了...嘿嘿 1.绘制正反面卡牌 function make_deck()//生成卡组并绘制 { var i;// v

JS写小游戏(一):游戏框架

前言 前一阵发现一个不错的网站,都是一些用html5+css+js写的小游戏,于是打算学习一番,写下这个系列博客主要是为了加深理解,当然也有一些个人感悟,如果英文好可以直接Click Here. 概述 一般,小游戏都要关注两个问题:刷新和交互.因为游戏一般是动态的,所以需要不断刷新.JavaScript是单线程,如果用C语言写过贪吃蛇之类的小游戏,应该知道,单线程一般是挂起一个时间来达到动态效果.比如C语言的Sleep(),JS的setInterval()等.但是js还有一种更高性能的方法req