原生js完成打地鼠小游戏
:这是首页,有简单模式和地狱模式两种模式进行选择
这是选择完模式之后的游戏界面:30秒一局游戏倒计时,每打中一只老鼠加一分,没砸中减一分,没砸不加不减
首先准备几张图片
html代码:
<!-- 初始界面 -->
<div class="cover">
<input type="button" value="简单模式" id="easy">
<input type="button" value="地狱模式" id="hard">
</div> <div id="content"> <div class="data-box">
<label>分数</label><input type="text" value="0" id="txtScore">
<label>分数</label><input type="text" value="30" id="txtRemtime">
</div> <!-- 快捷写法:(tr>td*4)*5 表示4行5列 -->
<table id="tb">
<tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tr>
</table>
</div>
css代码:
<style>
html,
body {
height: 100%;
} body {
margin: 0px;
background: url(img/bj.jpg) no-repeat center / cover;
} .data-box {
text-align: center;
/* margin-top: 0px; */
} table {
margin: 20px auto;
/* 改变鼠标指针 */
cursor: url(img/favicon1.ico), auto;
} td {
width: 100px;
height: 100px; background: url(img/rat-hole.png) no-repeat center / cover;
border-radius: 50%;
/* 透明度 */
opacity:0.9;
text-align: center;
} img {
width: 70px;
height: 70px;
} .cover {
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
} .cover>input {
width: 180px;
height: 60px;
position: absolute;
left: 50%;
top: 50%;
margin-left: -90px;
margin-top: -100px;
border-radius: 20px;
border: none;
outline: none; background-image: linear-gradient(45deg, green, yellowgreen);
font-size: 18px; } .cover>#hard {
margin-top: 0px;
} #content{
display: none;
}
</style>
js代码:主要内容就在这了,注释很详细
<script>
//找到所有的td
var tdList = document.getElementsByTagName('td'); //找到倒计时的文本框
var txtRemtime = document.getElementById("txtRemtime");
//准备一个变量来倒计时
var time = txtRemtime.value;
//找到table 为了修改他的锤子
var tb = document.getElementById("tb");
//找到分数的文本框
var txtScore = document.getElementById("txtScore");
//准备一个变量
var score = 0; //找到遮罩层
var cover = document.querySelector('.cover');
//找到游戏内容
var content = document.getElementById('content'); for (var i = 0; i < tdList.length; i++) {
//鼠标按下的事件
tdList[i].onmousedown = function () {
//修改table的锤子
tb.style.cursor = "url(img/favicon.ico), auto";
} tdList[i].onmouseup = function () {
//复原锤子
tb.style.cursor = "url(img/favicon1.ico), auto"; //判断咋的那个td里边有没有img ,有img就带变砸中了
if (this.children.length != 0) {
//分数+1
score++; //把这个img图片替换成哭的图片
this.children[0].src = "img/mouse2.png";
} else {
//分数-1
score--;
}
//把分数值赋值给文本框
txtScore.value = score;
}
} //找到简单模式 给他家点击事件
document.getElementById('easy').onclick = function () {
startGame(1500, 1000);
} //找到地狱模式 给他家点击事件
document.getElementById('hard').onclick = function () {
startGame(600, 500);
} //开始游戏
function startGame(creaTime, disTime) {
//隐藏大的遮罩层
cover.style.display = "none";
//游戏内容
content.style.display = "block"; //生成随机小老鼠
var mouseID = setInterval(function () {
//生成一个0-最大下标的随机数
var idx = parseInt(Math.random() * tdList.length);
//在生成的随机数对应的id的td添加小老鼠图片
tdList[idx].innerHTML = '<img src="img/mouse1.png">'; // 清楚小老鼠
setTimeout(function () {
tdList[idx].innerHTML = '';
}, disTime);
}, creaTime) //倒计时游戏时间
var timerID = setInterval(function () {
time--;
txtRemtime.value = time; if (time == 0) {
//停止倒计时
clearInterval(timerID);
//停止生成随机小老鼠
clearInterval(mouseID);
alert("游戏结束!");
} //计时器每秒执行一次 }, 1000);
}
</script>
原生js完成打地鼠小游戏的更多相关文章
- 一个简单用原生js实现的小游戏----FlappyBird
这是一个特别简单的用原生js实现的一个小鸟游戏,比较简单,适合新手练习 这是html结构 <!DOCTYPE html><html lang="en">&l ...
- JQuery&原生js ——实现剪刀石头布小游戏
前言 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库( 或JavaScript框架).jQuery设计的宗旨是“write L ...
- 原生js做h5小游戏之打砖块
前言 首先,先说明一下做这个系列的目的:其实主要源于博主希望熟练使用 canvas 的相关 api ,同时对小游戏的实现逻辑比较感兴趣,所以希望通过这一系列的小游戏来提升自身编程能力:关于 es6 语 ...
- 原生js完成拼图小游戏
废话不说,看代码,图片可以自己找,我这直接引用了百度的了 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml ...
- 用html+css+js做打地鼠小游戏
html 代码 first.html <!DOCTYPE html> <html lang="en"> <head> <meta char ...
- 用js实现2048小游戏
用js实现2048小游戏 笔记仓库:https://github.com/nnngu/LearningNotes 1.游戏简介 2048是一款休闲益智类的数字叠加小游戏.(文末给出源代码和演示地址) ...
- 【转】利用 three.js 开发微信小游戏的尝试
前言 这是一次利用 three.js 开发微信小游戏的尝试,并不能算作是教程,只能算是一篇笔记吧. 微信 WeChat 6.6.1 开始引入了微信小游戏,初期上线了一批质量相当不错的小游戏.我在查阅各 ...
- 使用JS实现2048小游戏
JS实现2048小游戏源码 效果图: 代码如下,复制即可使用: (适用浏览器:360.FireFox.Chrome.Opera.傲游.搜狗.世界之窗. 不支持Safari.IE8及以下浏览器.) &l ...
- js实现一个小游戏(飞翔的jj)
js实现一个小游戏(飞翔的jj) 源代码+素材图片在我的仓库 <!DOCTYPE html> <html lang="en"> <head> & ...
随机推荐
- JavaAgent学习小结
前言 最近因为公司需要,需要了解下java探针,在网上找资料,发现资料还是有很多的,但是例子太少,有的直接把公司代码粘贴出来,太复杂了,有的又特别简单不是我想要的例子, 我想要这样的一个例子: jvm ...
- 「SCOI2005」栅栏
传送门 Luogu 解题思路 我们有很显然的这样一条贪心思路: 首先满足长度短的木板,因为如果可以满足长的也肯定可以满足短的,而且可能满足更多. 那么我们就会有这样的思路:枚举一条木板由哪条木板切割而 ...
- SciPy 基础功能
章节 SciPy 介绍 SciPy 安装 SciPy 基础功能 SciPy 特殊函数 SciPy k均值聚类 SciPy 常量 SciPy fftpack(傅里叶变换) SciPy 积分 SciPy ...
- 磁盘空间引起ES集群shard unassigned的处理过程
1.问题描述 早上醒来发现手机有很多ES状态为red的告警,集群就前几天加了几个每天有十多亿记录的业务,当时估算过磁盘容量,应该是没有问题的,但是现在集群状态突然变成red了,这就有点懵逼了. 2.查 ...
- Centos上安装FastDFS
更新yum源 cd /etc/yum.repos.d wget http://mirrors.aliyun.com/repo/Centos-7.repo yum update 安装gcc(编译时需要) ...
- 018.CI4框架CodeIgniter数据库操作之:Delete删除一条数据
01. 在Model中写数据库操作语句,代码如下: <?php namespace App\Models\System; use CodeIgniter\Model; class User_mo ...
- yum 安装 tomcat
前言对于一个新安装的 centos 系统来说,是没有 tomcat 服务器的.用下面的命令可以查看 tomcat 服务的状态. systemctl status tomcat.service//或者 ...
- 应用于Oculus Quest的VR头显应用
项目需要一个VR头显项目来展示算法成果,设备为Oculus Quest一体机,基于android平台(平台要切换为android),体验了下设备效果还行,但还是有点沙窗效应.记录一下开发流程. 先贴个 ...
- 百度杀毒停止下载,个人PC杀毒软件真的走到尽头了吗?
在时代浪潮的席卷下,不适应的服务和产品终将被淘汰.诺基亚如此,杀毒软件亦是如此.就在近日,久久沉寂的杀毒软件市场被投下一颗重磅炸弹--百度杀毒软件官网PC端不再提供下载,但手机端依然提供下载和杀毒服务 ...
- Nachos-Lab2-线程调度模块实现
源码获取 https://github.com/icoty/nachos-3.4-Lab 内容一:总体概述 本实习希望通过修改Nachos系统平台的底层源代码,达到"扩展调度算法" ...