javascript编写贪吃蛇游戏


Posted in Javascript onJuly 07, 2015

代码很简单,这里就不多BB了,小伙伴们直接看示例吧

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<style>
*{
  margin:0;
  padding:0;
}
#wrap{
  position:relative;width:400px;height:400px;
  border:1px solid #ccc;
  margin:10px auto;
}
.snak, .snakBody{
  position:absolute;
  width:10px;height:10px;
  background:#666;
}
.food{
  position:absolute;width:10px;height:10px;
  background:#09F;display:block;
}
</style>
<div id="wrap">
  
</div>
<script src="http://ftp152341.host180.web522.com/%E6%89%93%E8%9C%9C%E8%9C%82/zepto.js"></script>
<script>
var Snak, Food;;

Food = function(op){ //op为zepto对象
  var food = $('<span class="food"></span>');
  food.css({ left : Math.floor(((op[0].clientWidth-10)*Math.random())), top : Math.floor(((op[0].clientHeight-10)*Math.random())) })
  op.append( food );
};
Snak = function(op){
  this.obj = document.createElement('div');
  this.obj.className = 'snak';
  this.op = op;
};
Snak.prototype.ev = function(){
  var _this = this, code;
  $(window).bind('keydown',function(e){
    clearInterval(_this.downTimer);
    code = e.keyCode;
    _this.downTimer = setInterval(function(){
      var l = _this.obj.offsetLeft, t = _this.obj.offsetTop;
      switch( code ){
        case 37 :
          l = l - 5;
        break;
        case 38 : 
          t = t - 5;
        break;
        case 39 : 
          l = l + 5;
        break;
        case 40:
          t = t + 5;
        break;
      };
      if( (l<0) || (t<0) || (l>400) || (t>400)){location.reload()};
      _this.obj.style.left = l + 'px';
      _this.obj.style.top = t + 'px';
      var snakB = $('.snakBody');
      for(var i=snakB.length-1; i>=0; i--){
        if(i == 0){
          snakB[0].style.left = l + 'px';
          snakB[0].style.top = t + 'px';
        }else{
          snakB[i].style.left = snakB[i-1].offsetLeft + 'px';
          snakB[i].style.top = snakB[i-1].offsetTop + 'px';
        };
      };
      if( pz(_this.obj,$('.food')[0]) ){
        $('.food').remove();
        new Food(wrap);
        $('<div class="snakBody"></div>').appendTo(wrap)
      };
    },30);
  }).bind('keyup',function(e){
  });
};
function pz(obj1,obj2){  
  var L1 = obj1.offsetLeft;
  var T1 = obj1.offsetTop;
  var R1 = L1 + obj1.offsetWidth;
  var B1 = T1 + obj1.offsetHeight;
  
  var L2 = obj2.offsetLeft;
  var T2 = obj2.offsetTop;
  var R2 = L2 + obj2.offsetWidth;
  var B2 = T2 + obj2.offsetHeight;
  if(L1 >= R2 || T1 >= B2 || R1 <= L2 || B1 <= T2){
    return false;
  }
  return true;
};
var wrap = $('#wrap'),snak = new Snak(food);
var food = new Food( wrap );
snak.ev();
wrap.append( $('<div class="snakBody"></div>') )[0].appendChild( snak.obj );
</script>
</body>
</html>

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
JavaScript动态修改网页元素内容的方法
Mar 21 Javascript
jquery实现经典的淡入淡出选项卡效果代码
Sep 22 Javascript
JavaScript之Vue.js【入门基础】
Dec 06 Javascript
jquery 正整数数字校验正则表达式
Jan 10 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
Jul 09 Javascript
分析javascript中9 个常见错误阻碍你进步
Sep 18 Javascript
JS中获取 DOM 元素的绝对位置实例详解
Apr 23 Javascript
JavaScript实现拖拽功能
Feb 11 Javascript
详解如何使用React Hooks请求数据并渲染
Oct 18 Javascript
微信小程序实现星星评分效果
Nov 01 Javascript
vue实现一个获取按键展示快捷键效果的Input组件
Jan 13 Vue.js
uni-app 微信小程序授权登录的实现步骤
Feb 18 Javascript
Javascript编写2048小游戏
Jul 07 #Javascript
利用JavaScript脚本实现滚屏效果的方法
Jul 07 #Javascript
JavaScript编写连连看小游戏
Jul 07 #Javascript
使用JavaScript制作一个简单的计数器的方法
Jul 07 #Javascript
JavaScript编写推箱子游戏
Jul 07 #Javascript
使用JavaScript实现连续滚动字幕效果的方法
Jul 07 #Javascript
理解JavaScript的变量的入门教程
Jul 07 #Javascript
You might like
DC最新动画电影:《战争之子》为何内容偏激,毁了一个不错的漫画
2020/04/09 欧美动漫
php提示undefined index的几种解决方法
2012/05/21 PHP
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
2007/05/03 Javascript
如何实现动态删除javascript函数
2007/05/27 Javascript
$()JS小技巧
2007/07/21 Javascript
Google Maps API地图应用示例分享
2014/10/23 Javascript
javascript验证邮件地址和MX记录的方法
2015/06/16 Javascript
跟我学习javascript的prototype使用注意事项
2015/11/17 Javascript
详解WordPress开发中get_current_screen()函数的使用
2016/01/11 Javascript
移动端jQuery修正Web页面滑动时div问题的两则实例
2016/05/30 Javascript
Vue.js实现一个SPA登录页面的过程【推荐】
2017/04/29 Javascript
vue 计时器组件的实现代码
2017/09/14 Javascript
React中上传图片到七牛的示例代码
2017/10/10 Javascript
JS返回顶部实例代码
2020/08/09 Javascript
使用json-server简单完成CRUD模拟后台数据的方法
2018/07/12 Javascript
小程序实现左右来回滚动字幕效果
2018/12/28 Javascript
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
跟老齐学Python之集合的关系
2014/09/24 Python
python非递归全排列实现方法
2017/04/10 Python
Python编程实现控制cmd命令行显示颜色的方法示例
2017/08/14 Python
对Django 转发和重定向的实例详解
2019/08/06 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
pandas读取csv文件提示不存在的解决方法及原因分析
2020/04/21 Python
详解python3 GUI刷屏器(附源码)
2021/02/18 Python
CSS3改变浏览器滚动条样式
2019/01/04 HTML / CSS
世界上最大的高分辨率在线图片库:Alamy
2018/07/07 全球购物
美国家居装饰购物网站:Amanda Lindroth
2020/03/25 全球购物
前台领班岗位职责
2013/12/04 职场文书
应届生自我鉴定
2013/12/11 职场文书
集团公司总经理岗位职责
2013/12/20 职场文书
计算机大学生职业生涯规划书范文
2014/02/19 职场文书
市场营销大学生职业规划书
2014/02/25 职场文书
校车安全责任书
2014/08/25 职场文书
2014年大学生党员评议表自我评价
2014/09/20 职场文书
大学生逃课检讨书
2015/05/04 职场文书
2016年清明节寄语
2015/12/04 职场文书