飞道的博客

h5游戏开发:用html+css+js写一个整蛊游戏

264人阅读  评论(0)


还记得那个一拳打穿显示器的胖子吗?

我来做一个简单的整蛊游戏吧!

演示效果(这个小熊图片请自行替换为恐怖图片,因为网络规定,我就放了个小熊上去,以前其实是很恐怖的一张鬼图):

既然是整蛊游戏,我们名字就不要起得太明显,根据潘多拉魔盒效应,为了诱导玩家进入我们的陷阱,就取名为:

千万别走到终点!!!

玩法设定:
有玩家看到这个标题可能第一反应是什么恐怖游戏,或者有奇怪的东西在终点等着他,为了消除这种顾虑,我们将游戏设定改一下,设计为通过摇骰子的方式决定玩家走的步数,而不是玩家自己走。这样我们就拥有进一步控制玩家走向的决定权。

第一步,先设计骰子

这一步,很简单,为了速度开发这款游戏,我们写成文字吧!(不是想忽悠你们,主要是时间有限,重点我放在后面一步)

第二步,设计行走的格子

我们用li来做吧,做个横排的表格,简单一点.(不是想忽悠你们,主要是时间有限,重点我放在后面一步)
听说骰子有6面,我们设计6步。

就这样,写出6个格子,刚好可以走6步
咋看起来还有点简陋(是真的简陋),不慌,黑色制造的神秘将革除白色的虚空,我们将body设置为黑色,然后字体变白

第三步,加入主角头像

布局已经就位了,我们还差个主角
我随便从网上找了一张照片,作为主角,当然,要可爱萌萌哒,制造毫无压力的气氛(虽然背景就很压抑,但是黑色环境可以让人将注意力集中在与黑色形成反差的颜色上🤪)


再加入我们的恐怖图片,实际是个小熊,因为网络监管原因不让放恐怖血腥,就用小熊代替恐怖图片

然后加入声音控件,顺便在加个大块,id为all,后面有用

对了,记得将audio控件隐藏起来,不让人看(bird.wav是恐怖的鸟声)

        <audio controls style="display: none">
            <source src="bird.wav" type="audio/mpeg">
            您的浏览器不支持 audio 元素。
        </audio>
第四步,开始写游戏js控制代码

然后开始写逻辑,第一步,写掷骰子的逻辑。
使用随机数方法Math.random(),
然后去除小数,取整数Math.floor(Math.random()*10),
然后随机数所指向的那个li就是目标li,也就是狗头像将要去到的位置,赋值给一个叫做aim的变量,开始写代码:

        var h4 = document.getElementsByTagName('h4')[0];
        var li = document.getElementsByTagName('li');
        var aim = 0;
        //掷骰子
        h4.onclick = function () {
            num = Math.floor(Math.random() * 10);
			//改变p标签显示的内容,好提示玩家将移动几步?
            document.getElementsByTagName('p')[0].innerHTML = '你随机选中的数字是:' + num + '<br>😀狗头像将移动' + num + '步';
            //如果num大于5,就等于5,这样我们有50%的概率(随机数字5,6,7,8,9,10)让玩家直接走出格触发我们的恐怖图片
            if (num >= 5) {
                num = 5;
                aim = li[num].offsetLeft;
                //设定一个交kok得函数,用于执行狗头像闪烁效果
                kok();
            } else {
                aim = li[num].offsetLeft; //随机数序号的li格子的左边距等于头像最终移动距离
                   //设定一个交kok得函数,用于执行狗头像闪烁效果
                kok();
            }
        }

接下来开始写狗头像闪烁以及移动到li后会出现什么效果的代码,也就是游戏的关键所在kok()函数,代码如下:

        function kok() {
            //设置图片消失然后出现在下一个格子的效果,一闪一闪.........500ms一次
            setInterval(function () {
                if (img[0].style.opacity == "1") {
                    img[0].style.opacity = "0";
                } else {
                    img[0].style.opacity = "1";
                }
                //如果狗头像的左边距离小于最终目标移动距离
                if (img[0].offsetLeft < aim) {
                    //就每次加10px的移动距离向前移动
                    img[0].style.marginLeft = img[0].offsetLeft + 10 + 'px';
                } else {
                    //最终目标距离赋值给狗头像的左边距
                    img[0].style.marginLeft = aim - 8 + 'px';
                    if (num == 5) {
                       //id为all的大块消失,恐怖图片出现,吓人音乐响起
						document.getElementById('all').style.display = "none";
                        img[1].style.display = "block";
                        document.getElementsByTagName('audio')[0].play();
                    }
                }
            }, 500);
最终结果,所有代码 (复制粘贴后改下图片路径和音乐媒体路径后就可以使用)>>>

最终合成代码以及运行效果:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>千万别走到终点!!!</title>
    <style>
        body {
            background-color: black;
            color: white;
        }
		
		h4{
            cursor: pointer;
        }
        h4:hover{
            color: red;
        }

        .feets {
            width: 600px;
            list-style: none;
        }

        .feets li {
            display: inline-block;
            font-size: 0px;
            width: 80px;
            height: 80px;
            /* margin-left: 1px; */
            background: linear-gradient(to right, #ccc, #487);
        }

        img {
            /* display: none; */
            position: absolute;
            width: 80px;
            height: 80px;
            margin-top: -100px;
            margin-left: 40px;
        }

        .scareImg {
            display: none;
            position: fixed;
            margin: auto;
            width: 1600px;
            height: 100%;
            z-index: 500;
        }
    </style>
</head>

<body>
    <div id="all">
        <h4>请掷骰子</h4>
        <p>你随机选中的数字是:?</p>
        <ul class="feets">
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
        <img src="./一个头像.jpg" alt="">
        <audio controls style="display: none">
            <source src="bird.wav" type="audio/mpeg">
            您的浏览器不支持 audio 元素。
        </audio>
    </div>
    <img class="scareImg" src="./一个恐怖图片.jpg" alt="">
    <script>
        var h4 = document.getElementsByTagName('h4')[0];
        var img = document.getElementsByTagName('img');
        var li = document.getElementsByTagName('li');
        var aim = 0;
        //掷骰子
        h4.onclick = function () {
            num = Math.floor(Math.random() * 10);
            document.getElementsByTagName('p')[0].innerHTML = '你随机选中的数字是:' + num + '<br>😀狗头像将移动' + num + '步';
            //如果num大于5,就等于5,这样我们有50%的概率(随机数字5,6,7,8,9,10)让玩家直接走出格触发我们的恐怖图片
            if (num >= 5) {
                num = 5;
                aim = li[num].offsetLeft;
                //设定一个交kok得函数,用于执行狗头像闪烁效果
                kok();
            } else {
                aim = li[num].offsetLeft; //随机数序号的li格子的左边距等于头像最终移动距离
                   //设定一个交kok得函数,用于执行狗头像闪烁效果
                kok();
            }
        }

        function kok() {
            //设置图片消失然后出现在下一个格子的效果,一闪一闪.........500ms一次
            setInterval(function () {
                if (img[0].style.opacity == "1") {
                    img[0].style.opacity = "0";
                } else {
                    img[0].style.opacity = "1";
                }
                //如果狗头像的左边距离小于最终目标移动距离
                if (img[0].offsetLeft < aim) {
                    //就每次加10px的移动距离向前移动
                    img[0].style.marginLeft = img[0].offsetLeft + 10 + 'px';
                } else {
                    //最终目标距离赋值给狗头像的左边距
                    img[0].style.marginLeft = aim - 8 + 'px';
                    if (num == 5) {
                        document.getElementById('all').style.display = "none";
                        img[1].style.display = "block";
                        document.getElementsByTagName('audio')[0].play();
                    }
                }
            }, 500);
        }
    </script>
</body>

</html>

运行效果——移动中:

运行效果——触发恐怖图形后:

然后就完成了,
对了,还有文件名要改下:

因为国内网络相关制度规定,不传播恐怖血腥,我就没放那种图片,你们可以去百度后自己替换这个恐怖小熊,音乐还可以替换得再惊悚一点,你懂的😥

对了,我有搞忘了,点击h4标签开始游戏>>>

关于图片资源和音效及代码的提取链接:https://pan.baidu.com/s/1Wpbbt22B90xdJEhCMrzE2A
提取码:v894


转载:https://blog.csdn.net/qq_41136216/article/details/105487980
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场