IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> JS实现锅打灰太狼小游戏,点击动画以及加分减分 -> 正文阅读

[游戏开发]JS实现锅打灰太狼小游戏,点击动画以及加分减分

<!DOCTYPE html>
<html lang="en">
	<meta charset="UTF-8">
	<title>Document</title>
	<head>
		<style type="text/css">
			* {
				margin: 0;
				padding: 0;
				font-family: "宋体";
			}

			#outer {
				background: url(img/game_bg.jpg) 0 0 no-repeat;
				height: 480px;
				width: 320px;
				position: relative;
				margin-left: auto;
				margin-right: auto;
				margin-top: 50px;
			}

			#scoring {
				position: absolute;
				font-weight: bold;
				font-size: 16px;
				color: white;
				left: 65px;
				top: 13px;
			}

			#countDown {
				position: absolute;
				background: url(img/progress.png) 0 0 no-repeat;
				width: 180px;
				height: 16px;
				left: 63px;
				top: 66px;
			}

			#wolfs img {
				position: absolute;
			}

			#menu {
				position: absolute;
				width: 320px;
				text-align: center;
				left: 0;
				top: 200px;
			}
			#start,
			#handle,
			#gameOver,
			#Rgame {
				line-height: 50px;
				font-size: 30px;
				font-weight: bold;
				color: #ff5500;
				display: block;
				text-shadow: 0 0 5px #ffaa00;
				text-decoration: none;
			}
			#gameOver {
				position: absolute;
				width: 320px;
				text-align: center;
				top: 200px;
				left: 0;
				display: none;
			}
			#Rgame {
				position: absolute;
				width: 320px;
				text-align: center;
				top: 250px;
				left: 0;
				display: none;
			}
		</style>

	</head>
	<body>
		<div id="outer">
			<!--这是分数-->
			<div id="scoring">0</div>
			<!--倒计时-->
			<div id="countDown"></div>
			<!--灰太狼们-->
			<div id="wolfs">
				<!-- <img src="img/h5.png"/>  -->
			</div>
			<div id="menu">
				<a href="javascript:void(0)" id="start">开始</a>
				<a href="javascript:void(0)" id="handle">游戏规则</a>
			</div>
			<div id="gameOver">游戏结束!</div>
			<div id="Rgame">返回</div>
		</div>

		<script type="text/javascript">
			// 获取按钮
			var startBtn = document.querySelector("#start");

			// 菜单
			var menu = document.querySelector("#menu");

			//倒计时
			var countDownDiv = document.querySelector("#countDown");

			// 存放狼的div
			var wolfsDiv = document.querySelector("#wolfs");

			// 游戏结束弹框gameOver
			var gameOverDiv = document.querySelector("#gameOver");
			var RgameDiv = document.querySelector("#Rgame");

			// 获取存放分数的div->scoring
			var scoring = document.querySelector("#scoring");

			// 用一个对象,存放灰太狼出现的位置
			var wolfStartArr = [{
				left: "98px",
				top: "115px"
			}, {
				left: "17px",
				top: "160px"
			}, {
				left: "15px",
				top: "220px"
			}, {
				left: "30px",
				top: "293px"
			}, {
				left: "122px",
				top: "273px"
			}, {
				left: "207px",
				top: "295px"
			}, {
				left: "200px",
				top: "211px"
			}, {
				left: "187px",
				top: "141px"
			}, {
				left: "100px",
				top: "185px"
			}];

			// 用来创建狼的定时器
			var createWolfTimer = null;

			// 给按钮添加点击事件
			startBtn.onclick = function() {

				// 隐藏menu菜单
				menu.style.display = "none";

				// 开始倒计时
				var countDownWidth = countDownDiv.offsetWidth;

				var timer = setInterval(function() {
					// 每10毫秒减一
					countDownWidth--;
					// 重新给倒计时div赋值宽度,实现倒计时效果
					countDownDiv.style.width = countDownWidth + "px";
					if (countDownWidth <= 0) {
						// 游戏结束,清除定时器
						clearInterval(timer);
						// 清除创建狼的定时器
						clearInterval(createWolfTimer);
						// 显示弹框
						gameOverDiv.style.display = "block";
						RgameDiv.style.display = "block";
					}

				}, 10)//游戏运行的时间

				// 创建狼
				// 用来记录上一个随机数(洞口上一次出现的位置)
				var num = -9999999;

				createWolfTimer = setInterval(function() {
					// 随机数
					var rand = randFn(0, wolfStartArr.length - 1); //0 1 1
					// 随机0~100的数
					var randType = randFn(0, 100);
					if (num == rand) {
						return;
					}
					num = rand;

					var wolf = new Image();

					//设置狼出现的位置
					wolf.style.left = wolfStartArr[rand].left;

					wolf.style.top = wolfStartArr[rand].top;

					// 随机狼的类型(小灰灰or灰太狼)
					randType > 90 ? wolf.type = "x" : wolf.type = "h";

					// 图片的下标
					wolf.index = 0;

					wolf.src = "img/" + wolf.type + wolf.index + ".png";

					// 插入到divs里面
					wolfsDiv.appendChild(wolf);

					//用来狼出现的动画(通过计时器刷图,实现动画)
					wolf.upTimer = setInterval(function() {
						wolf.index++;
						if (wolf.index <= 5) {
							wolf.src = "img/" + wolf.type + wolf.index + ".png";
						} else {
							clearInterval(wolf.upTimer);
							wolf.downTimer = setInterval(function() {
								wolf.index--;
								if (wolf.index <= 0) {
									clearInterval(wolf.downTimer);
									wolfsDiv.removeChild(wolf);
								}
								wolf.src = "img/" + wolf.type + wolf.index + ".png";
							}, 100)
						}
					}, 150)

					var bol = true;
					// 给wolf添加点击事件
					wolf.onclick = function() {
						wolf.index = 5;
						if (bol == true) {
							// 清除定时器(狼出现,狼消失)
							clearInterval(wolf.upTimer);
							clearInterval(wolf.downTimer);
							wolf.hitTimer = setInterval(function() {
								wolf.index++;
								if (wolf.index >= 9) {
									clearInterval(wolf.hitTimer);
									// 移除wolf
									wolfsDiv.removeChild(wolf);
								}
								wolf.src = "img/" + wolf.type + wolf.index + ".png";
							}, 100)
						}
						bol = false;
						if (wolf.type == "x") {

							// 减10分
							scoring.innerHTML = parseInt(scoring.innerHTML) - 10;

						} else if (wolf.type == "h") {

							// 加10分
							scoring.innerHTML = parseInt(scoring.innerHTML) + 10;
						}
					}
				}, 800)
			}
			//游戏规则、点击
			handle.onclick = function() {
				alert("在两分钟内点击露头的灰太狼和小灰灰,每次点击灰太狼加10分,每次点击小灰灰减10分!!");
			}
			//点击返回开始菜单
			Rgame.onclick=function(){
				
			}

			// 随机函数
			function randFn(min, max) {
				return parseInt(Math.random() * (max - min + 1) + min);
			}

			// 阻止默认事件
			document.onmousedown = function(ev) {
				var e = ev || window.ev;
				e.preventDefault();
			}
		</script>
	</body>
</html>

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-09-23 11:46:48  更:2021-09-23 11:48:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/28 4:46:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码