网易首页 > 网易号 > 正文 申请入驻

基于HTML5打造的一款别踩白板小游戏

0
分享至

背景简介

别踩白板这个游戏相信大家都玩过,这个是基于HTML5打造的简单小游戏,在PC端和移动端都能够运行,适应多种平台,今天我们使用原生JS搭配JQuery构建这个小游戏--别踩白板。

一、思路分析

整体页面是一个大的矩形,长宽比例大概是3:2,然后游戏开始,不断有白板降落,然后一行是4个板,一块黑色板块,其余三块是白色板块,通过板块的点击事件绑定,然后判定是什么颜色,只要是白色的,游戏结束(Game Over), 否则玩家积分加1;

二、页面搭建

2.1 HTML层

class="wrapper">

Game Starta> div>

div>div>

2.2 CSS层

在样式设置前还是先了解大致结构,如下所示:

全局设置样式

*{ margin:0; padding:0;}

wrapper样式设置样式

.wrapper{ margin:150px auto; width:400px; height:600px; border:1px solid #ccc; position: relative; overflow: hidden;}

wrapper下面的go的设置样式

#go{ width:100%; position: absolute; top:0; text-align: center; z-index:99;}

开始游戏按钮设置样式

#go a{ display:block; height:100px; width:400px; color:cyan; background-color: #000000; text-decoration: none; border-bottom:3px dashed #eee; font-size:60px; font-weight:600;}

main(方块)设置样式

#main{ width:400px; height:600px; position: relative; top:-150px; /* border:1px solid black; */}

创建出来的每一行方块设置样式

.row{ width:400px; height:150px;}

一行中的四个小方块的设置样式

.row div{ width:99px; height:149px; border-left:1px solid #222; border-bottom:1px solid #222; float: left; cursor: pointer;}

在设置好样式之后,得到的大致界面如下所示:

可以看到界面样式比较简单,我们的想法是点击Start Game 按钮后方块自动降落,所以屏幕比较空(暂时)。

2.3 JS层

js层主要用来控制页面产生动态效果;比如产生方块,以及方块的移动等等;

2.3.1获取元素

var main = document.getElementById('main'); // 获取dom元素var go = document.getElementById('go'); var speed = 5, num = 0, timer, flag = true; // 设置初始变量var colors = ['red', 'green', 'black', 'blue']; // 设置存放颜色的数组

这里存放颜色的数组不需要白色,每一个初始化出来的方块不设置背景颜色,它默认是白色;

2.3.1创建每一行div元素

前面我们说过,一行是四个方块,比例和大方块一样(3:2),它的长宽是:{width: 100px ; height: 150px};

2.3.2点击事件函数封装

function bindEvent() { main.addEventListener('click', function (event) { // 给main添加点击事件 if (flag) { // 根据flag值判断是否可以点击 var tar = event.target; // 获得到点击的源事件 if (tar.className == 'i') { // 判断点击的块是否为有颜色的 tar.style.backgroundColor = '#bbb'; // 改变背景颜色 tar.classList.remove('i'); // 移除class类名 num++; // 计数++ } else { alert('游戏结束,得分:' + num); // 如果点到了白色的块 游戏结束 clearInterval(timer); flag = false; } if (num % 10 == 0) { // 如果当前分数为10的倍数 速度++ speed++; } } })}

2.3.4 方块移动函数封装

function move() { clearInterval(timer); timer = setInterval(function () { // 设置定时器 var step = parseInt(main.offsetTop) + speed; // 利用top值移动main区域 main.style.top = step + 'px'; if (parseInt(main.offsetTop) >= 0) { // 如果main区域移动到可视区域 创建一行新的元素 cDiv(); main.style.top = '-150px'; // 同时将main区域移动到可视区域上方 } var len = main.childNodes.length; // 获得mian区域内的行数 if (len == 6) { // 如果main区域内行数为6 即显示区域四行 上面新生成一行 下面一行 for (var i = 0; i < 4; i++) { // 遍历最后一行的每一个div if (main.childNodes[len - 1].children[i].classList.contains('i')) { // 如果其中有一个包含没有被点击的 游戏结束 alert('游戏结束,得分:' + num); clearInterval(timer); flag = false; // 游戏结束后不可以继续点击 } } main.removeChild(main.childNodes[len - 1]); // 将展示过后的每一行移除 } }, 20) bindEvent(); // 点击事件}

在函数里面第一句就是clearInterval(timer);防止定时器多开;

2.3.5 游戏开始

// 开始按钮点击 开始移动 创建每一行元素function clickStart() { go.addEventListener('click', function () { go.style.display = 'none'; move(); });}clickStart();

大致效果如图所示:

这个是使用到HbuilderX中的内置浏览器的界面,游戏结束效果如上图所示;

三、总结

本文我们使用到原生js打造了简单触屏游戏------别踩白板,对于游戏有简单的改动。总体来说首先我们需要设置好游戏界面大致结构和样式,然后通过原生js控制方块的产生移动,以及点击等等,最终才呈现了一个合适的完整的界面效果;感兴趣的小伙伴可以去试一下。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
SGA32+9夺赛点仍遭美媒炮轰:绝技倒地 主动对抗飞扑 联盟被操纵

SGA32+9夺赛点仍遭美媒炮轰:绝技倒地 主动对抗飞扑 联盟被操纵

颜小白的篮球梦
2026-05-27 11:50:25
湖北收麦“割四赔五”上热搜,农户大妈被网暴,农机小两口转河南

湖北收麦“割四赔五”上热搜,农户大妈被网暴,农机小两口转河南

爱下厨的阿椅
2026-05-27 14:57:49
难以置信!知名网红被查,15万绿茶、拜金女,竟是流水线整出来的

难以置信!知名网红被查,15万绿茶、拜金女,竟是流水线整出来的

火山詩话
2026-05-27 15:31:34
你以为麻豆传媒是卖片的,其实它是卖人的

你以为麻豆传媒是卖片的,其实它是卖人的

创始人笔记
2026-04-23 21:44:50
勇士4大最新动态!巴特勒不顾伤势唱跳 中产追2人+11号签选3目标

勇士4大最新动态!巴特勒不顾伤势唱跳 中产追2人+11号签选3目标

锅子篮球
2026-05-27 22:13:07
《亢奋》主创揭秘:为什么让Nate死得这么惨

《亢奋》主创揭秘:为什么让Nate死得这么惨

热搜摘要官
2026-05-27 00:36:38
曝骑士将全力追詹姆斯!勒布朗拒绝300万底薪 哈登愿降薪促成交易

曝骑士将全力追詹姆斯!勒布朗拒绝300万底薪 哈登愿降薪促成交易

锅子篮球
2026-05-27 13:39:12
卡里克点名!曼联砸穿 62 年双红禁忌!直接挖利物浦世界级核心

卡里克点名!曼联砸穿 62 年双红禁忌!直接挖利物浦世界级核心

澜归序
2026-05-28 06:40:19
卢伟打掩护?上海男篮悍将被CBA除名,总决赛生变数

卢伟打掩护?上海男篮悍将被CBA除名,总决赛生变数

野渡舟山人
2026-05-27 18:31:06
一个12岁男孩死了,我们还在假装没事

一个12岁男孩死了,我们还在假装没事

半勺甜心事
2026-05-27 01:22:21
DO:阿森纳给热苏斯标价1800万至2000万镑,有多家俱乐部问价

DO:阿森纳给热苏斯标价1800万至2000万镑,有多家俱乐部问价

懂球帝
2026-05-28 03:57:05
越打越强?莫斯科全面限制私人飞行!乌克兰首次空袭加里宁格勒

越打越强?莫斯科全面限制私人飞行!乌克兰首次空袭加里宁格勒

项鹏飞
2026-05-26 17:51:41
印尼莫走歧途,中方不会坐视不管

印尼莫走歧途,中方不会坐视不管

风铃草语
2026-05-28 06:21:48
这一次,广州比深圳大胆!

这一次,广州比深圳大胆!

拆神
2026-05-27 10:06:46
一位手提头颅的女子,常以正面形象出现在古画里,她做了啥事?

一位手提头颅的女子,常以正面形象出现在古画里,她做了啥事?

收藏大视界
2026-05-27 19:05:14
长鑫日赚4亿,合肥普通人到底能分几杯羹?

长鑫日赚4亿,合肥普通人到底能分几杯羹?

时尚的弄潮
2026-05-27 20:17:12
张雪:德比斯夺10冠就是年度总冠军!雅马哈怎么追也追不上我们

张雪:德比斯夺10冠就是年度总冠军!雅马哈怎么追也追不上我们

念洲
2026-05-27 09:04:41
北京市养犬管理规定将修改,犬只登记前应植入电子标识

北京市养犬管理规定将修改,犬只登记前应植入电子标识

新京报
2026-05-27 14:53:09
“哪吒  ”带病跑步,冲线后晕厥,住进ICU!拿命换来的跑步忠告

“哪吒 ”带病跑步,冲线后晕厥,住进ICU!拿命换来的跑步忠告

马拉松跑步健身
2026-05-27 21:15:49
越来越多曾在柬埔寨等国从事电诈的人员正转移至印尼作案,中使馆提醒

越来越多曾在柬埔寨等国从事电诈的人员正转移至印尼作案,中使馆提醒

澎湃新闻
2026-05-27 11:54:06
2026-05-28 08:32:49
Python学习交流
Python学习交流
人生苦短,我用Python
419文章数 4851关注度
往期回顾 全部

游戏要闻

《刺客信条黑旗》重制版彻底移除航海场景间加载画面

头条要闻

媒体:日本情报体系迎来根本性重构 威胁的不止东亚

头条要闻

媒体:日本情报体系迎来根本性重构 威胁的不止东亚

体育要闻

这群老阿姨,是最硬核的马刺球迷

娱乐要闻

王鹤棣风波连累父亲炸串店遭差评?

财经要闻

中国半导体的阳谋

科技要闻

Meta首推AI付费服务 股价应声涨超3.7%

汽车要闻

限时补贴价9.28-10.98万 MG 4X正式上市

态度原创

手机
亲子
游戏
房产
公开课

手机要闻

苹果首款折叠屏iPhone保护壳曝光 设计细节进一步明朗

亲子要闻

孕激素真让人可怕

小米称YU7 GT目前暂无登陆《GT赛车7》计划

房产要闻

合生创展前总裁被查!直指房企违规放贷、利益输送等问题

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版