全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

JavaScript实现一个空中避难的小游戏

前言

最近在看js中的事件,之前也一直有用到事件,用到最多的就是onclick单击事件,还有填写表单信息时的用到的onfocus聚焦时间,和onblur事件,最近看到了onmousemove鼠标移动事件,觉得很神奇,就突然很想写一个小游戏,用到了setInterval函数。游戏的功能也很简单,就是天上掉纸片,小人儿要不停的躲,一旦纸片和小人儿相撞,就会game over!

代码如下:

<!DOCTYPE html>

<html>

<head>

<style>
 .move
 {
  margin-top: 0px;
  width:40px;
  height: 50px;
  background: #ff0;
  position:absolute;
  z-index: 999;
 }


 .self
 {
  width:40px;
  height: 50px;
  background: #f0f;
  position:absolute;
  margin-top: 600px;
  margin-left: 643px;
  z-index: 999;
 }

 .self img
 {
  width:40px;
  height: 50px;
  border-radius: 20px;
 }

</style>

<title>图图up up</title> 

</head>

<body onload="moveDiv()">
 <!--12个div就是空中的小纸片-->
 <div class="move" style="margin-left:100px">

 </div>

 <div class="move" style="margin-left:200px">

 </div>
 <div class="move" style="margin-left:300px">

 </div>
 <div class="move" style="margin-left:400px">

 </div>

 <div class="move" style="margin-left:500px">

 </div>
 <div class="move" style="margin-left:600px">

 </div>
 <div class="move" style="margin-left:700px">

 </div>
 <div class="move" style="margin-left:800px">

 </div>

 <div class="move" style="margin-left:900px">

 </div>
 <div class="move" style="margin-left:1000px">

 </div>
 <div class="move" style="margin-left:1100px">

 </div>
 <div class="move" style="margin-left:1200px">

 </div>

 <!--小人儿用一张图片代替-->
 <div id="self" class="self">
  <img src="images/tutu.jpg">
 </div>

</body>

<script type="text/javascript">

 var alldiv = document.querySelectorAll('.move');
 var selfdiv = document.getElementById("self");
 var timer, flag;
 function moveItem()
 {
  //用随机数决定哪一张纸片掉落
  for (var j = 0; j < Math.round(Math.random()*11); j++) 
  {

   var i = Math.round(Math.random()*11);
   alldiv[i].style.top = alldiv[i].offsetTop + 20 +"px";

   //掉落过程中改变纸片的颜色
   var rgb='rgb('+Math.floor(Math.random()*255)+','
      +Math.floor(Math.random()*255)+','
      +Math.floor(Math.random()*255)+')';
   alldiv[i].style.backgroundColor = rgb;

   if (alldiv[i].offsetTop >= 600)
   {
    alldiv[i].style.top = "50px"; //当纸片落到底部,又重新回到起点
   }
  }

 }

 function moveDiv()
 {
  timer = setInterval(moveItem,20); //每隔20ms掉落
  flag = setInterval(meeting,1); //间隔1ms判断是否相撞
 }

 var selfdiv = document.getElementById("self");
 selfdiv.onmousedown = function(e) //鼠标点击小人儿开始移动
 {
  document.onmousemove = function(e) //小人儿跟着鼠标移动
  {
   if (e.clientY > 600)
   {
    selfdiv.style.marginTop = "600px"; //如果到达屏幕底部就不再往下
   }
   else if(e.clientX > 1300)
   {
    selfdiv.style.marginLeft = "1300px"; //到达最右部就回到不再往右
   }
   else
   {
    //小人儿的位置始终等于鼠标的位置
    selfdiv.style.marginTop = e.clientY + "px";
    selfdiv.style.marginLeft = e.clientX + "px";
   }
  }
 }

 function meeting()
 {
  for (var i = 0; i < alldiv.length; i++)
  {
   //判断是否相撞
   if (Math.abs(alldiv[i].offsetTop-selfdiv.offsetTop) <= 50 && 
    Math.abs(alldiv[i].offsetLeft-selfdiv.offsetLeft) <= 40)
   {
    clearInterval(flag);
    clearInterval(timer);
    alert("一不小心撞到了!!!游戏结束");
   }
  }
 }

</script>

</html>

效果如图:

全部的代码就这些,动图做的效果不是很好,第一次做动图,发现有很多在线网站都可以,做起来很简单,还是免费的,开心!!!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# javascript小游戏  # javascript实例小游戏  # javascript简单小游戏  # 鼠标  # 判断是否  # 就会  # 很好  # 随机数  # 最多  # 有很多  # 也很  # 很简单  # 很想  # 如图  # 这篇文章  # 谢谢大家  # 往下  # 表单  # 每隔  # 撞到  # 单击  # 天上掉  # 图图 


相关文章: 相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  建站168自助建站系统:快速模板定制与SEO优化指南  广州营销型建站服务商推荐:技术优势与SEO优化解析  制作网站的过程怎么写,用凡科建站如何制作自己的网站?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  建站DNS解析失败?如何正确配置域名服务器?  如何快速配置高效服务器建站软件?  如何高效利用亚马逊云主机搭建企业网站?  如何安全更换建站之星模板并保留数据?  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  北京建设网站制作公司,北京古代建筑博物馆预约官网?  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  建站为何优先选择香港服务器?  济南企业网站制作公司,济南社保单位网上缴费步骤?  详解jQuery停止动画——stop()方法的使用  ,巨量百应是干嘛的?  如何在搬瓦工VPS快速搭建网站?  如何快速查询域名建站关键信息?  建站主机如何选?高性价比方案全解析  北京网站制作公司哪家好一点,北京租房网站有哪些?  文字头像制作网站推荐软件,醒图能自动配文字吗?  建站之星与建站宝盒如何选择最佳方案?  建站上传速度慢?如何优化加速网站加载效率?  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  建站之星后台管理如何实现高效配置?  常州企业建站如何选择最佳模板?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  如何在IIS中配置站点IP、端口及主机头?  建站之星ASP如何实现CMS高效搭建与安全管理?  c++ stringstream用法详解_c++字符串与数字转换利器  上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?  如何在阿里云完成域名注册与建站?  如何快速搭建虚拟主机网站?新手必看指南  如何选择适合PHP云建站的开源框架?  ppt制作免费网站有哪些,ppt模板免费下载网站?  建站之星导航配置指南:自助建站与SEO优化全解析  建站主机选哪家性价比最高?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  公众号网站制作网页,微信公众号怎么制作?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  已有域名和空间,如何快速搭建网站?  中山网站推广排名,中山信息港登录入口?  定制建站流程解析:需求评估与SEO优化功能开发指南  宝塔新建站点报错如何解决?  建站之星后台密码遗忘或太弱?如何重置与强化?  建站之星导航如何优化提升用户体验?  网站制作报价单模板图片,小松挖机官方网站报价?  如何自定义建站之星模板颜色并下载新样式? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。