原生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> & ...
随机推荐
- 「SP1043」GSS1 - Can you answer these queries I
传送门 Luogu 解题思路 这题就是 GSS3 的一个退化版,不带修改操作的区间最大子段和,没什么好讲的. 细节注意事项 咕咕咕 参考代码 #include <algorithm> #i ...
- ThreadLocal的原理和在框架中的应用
ThreadLocal的原理和在框架中的应用 博客分类: java基础 框架多线程SpringthreadDAO 概述 我们知道Spring通过各种DAO模板类降低了开发者使用各种数据持久 ...
- 嵊州普及Day4T1
题意:从n个数中选出k个数,使他们任意两数之差都等于m. 思路:任意差值都等于m,不就等价于k个数模m余数相同吗? 然后桶排储蓄一下各数余数即可. 见代码: #include<iostream& ...
- 最简单的mybatis增删改查样例
最简单的mybatis增删改查样例 Book.java package com.bookstore.app; import java.io.Serializable; public class Boo ...
- C++Review15_内存管理
一.野指针 定义指针变量时最好初始化为NULL: 内存回收后,指针也用完了,这时候也需要及时将指针置为NULL: 指针就像野狗一样,为了防止它乱指,除了在使用期间,别的时候都需要置为NULL.这样它就 ...
- 学习进度-10 python爬虫
学习爬虫的第一个案例是小说爬虫. 小说爬虫首先是解析小说页面源代码,在页面源代码中可以看到小说每章节的内容链接 爬虫的代码: import requests import re url = 'http ...
- anaconda 创建虚拟环境(自己版本)
首先安装anaconda(3) Anacond的介绍Anaconda指的是一个开源的Python发行版本,其包含了conda.Python等180多个科学包及其依赖项. 因为包含了大量的科学包,Ana ...
- 文本处理三剑客与shell正则表达式
文本处理三剑客 提到对于文本的处理上,除了vim这个强大的编辑器之外,还有使用命令的形式去处理你要处理的文本,而不需要手动打开文本再去编辑.这样做的好处是能够以shell命令的形式将编辑和处理文本的工 ...
- centos 7安装nodejs
ps: {install_path} 安装目录路径 1.安装wget yum install wget 2. 下载对应文件 wget -c https://nodejs.org/dist/v8.9.1 ...
- python 数据处理 对txt文件进行数据处理
数据: 对txt文件进行数据处理: txt_file_path = "basic_info.txt" write_txt_file_path = "basic_info1 ...